Cocos2d-JS开发中的一些小技巧

Cocos2d-JS开发中的一些小技巧,第1张

概述1、获取URL中的请求参数的值----此方法接收参数名 1 2 3 4 5 6 function getQueryString(name) {      var reg =  new  RegExp( "(^|&)"  + name +  "=([^&]*)(&|$)" ,  "i" );      var r = window.location.search.substr(1).match(re

1、获取URL中的请求参数的值----此方法接收参数名

1 2 3 4 5 6 functiongetqueryString(name){ varreg= new RegExp( "(^|&)" +name+ "=([^&]*)(&|$)" , "i" ); varr=window.location.search.substr(1).match(reg); if (r!=null) return decodeURIComponent(r[2]); @H_403_66@ null; };


2、底图上添加文字---适用于按钮Sprite

6 7 8 9 10
varMybuttonSprite=cc.Sprite.extend({ ctor:function(filename,Title,Fontname,FontSize){ this ._super(filename); @H_403_66@ varTitleLabel= cc.LabelTTF(Title,FontSize); .addChild(TitleLabel); TitleLabel.x= .getContentSize().wIDth/2; TitleLabel.y= .getContentSize().height/2; } });

3、远程图片加载

10 11 12 13 14 15 16 17
loadimgFromUrl:function(target,imgurl,p,tag){ (!imgurl) ; varself=target; varloadCb=function(err,img){ @H_403_66@ cc.textureCache.addImage(imgurl); vartexture2d= cc.Texture2D(); texture2d.initWithElement(img); texture2d.handleLoadedTexture(); varsp= cc.Sprite(); sp.initWithTexture(texture2d); self.addChild(sp); sp.x=p.x; sp.y=p.y; sp.tag=tag; }; cc.loader.loadimg(imgurl,{isCrossOrigin: false },loadCb);

4、XMLhttpRequest

17 18 19 20 21 22 23 24 25 26 27 28 29
varsendRequest=function(url,params,isPost,callback,errorcallback){ (url==null||url== '' ) ; varxhr=cc.loader.getXMLhttpRequest(); (isPost){ xhr.open( "POST" } else { "GET" } xhr.setRequestheader( "Content-Type" "application/x-www-form-urlencoded" ); xhr.onreadystatechange=function(){ (xhr.readyState==4&&xhr.status==200){ varresponse=xhr.responseText; (callback) callback(response); else (xhr.readyState==4&&xhr.status!=200){ varresponse=xhr.responseText; (errorcallback) errorcallback(response); } }; (params==null||params== "" ){ xhr.send(); { xhr.send(params); } 5、JsON解析以及上述第4条的回调方法

8
varcallback=function(response){ varjsonData=JsON.parse(response); vardata=JsonData[ "users" ]; (data){ @H_403_66@ alert(data[ "name" ]); //todosomething } 6、自定义Loading界面

29 30 31 32 33 34 35 @H_301_496@ 36 37 38 @H_677_502@ 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
varMyLoaderScene=cc.Scene.extend({ _interval:null, _length:0, _count:0, @H_403_66@ _label:null, _classname: "MyLoaderScene" init:function(){ varself= ; //bg varbgLayer=self._bgLayer=cc.Layercolor.create(cc.color(32,32,255)); bgLayer.setposition(cc.visibleRect.bottomleft); self.addChild(bgLayer,0); //loadingpercent varlabel=self._label=cc.LabelTTF.create( "玩命加载中...0%" "Arial" label.setposition(cc.pAdd(cc.visibleRect.center,cc.p(0,0))); label.setcolor(cc.color(180,180,180)); bgLayer.addChild( ._label,10); return true ; _initStage:function(img,centerPos){ ; vartexture2d=self._texture2d= cc.Texture2D(); texture2d.initWithElement(img); texture2d.handleLoadedTexture(); varlogo=self._logo=cc.Sprite.create(texture2d); logo.setScale(cc.contentScaleFactor()); logo.x=centerPos.x; logo.y=centerPos.y; self._bgLayer.addChild(logo,10); onEnter:function(){ ; cc.Node.prototype.onEnter.call(self); @H_404_772@ self.schedule(self._startLoading,0.3); onExit:function(){ cc.Node.prototype.onExit.call( ); vartmpStr= ; ._label.setString(tmpStr); /** *initwithresources *@param{Array}resources *@param{Function|String}cb */ initWithResources:function(resources,cb){ (typeofresources== "string" )resources=[resources]; .resources=resources||[]; .cb=cb; _startLoading:function(){ ; self.unschedule(self._startLoading); varres=self.resources; self._length=res.length; self._count=0; cc.loader.load(res,function(result,count){self._count=count;},function(){ (self.cb) self.cb(); }); self.schedule(self._updatePercent); _updatePercent:function(){ ; varcount=self._count; varlength=self._length; varpercent=(count/length*100)|0; percent=Math.min(percent,100); self._label.setString( "玩命加载中..." +percent+ "%" ); (count>=length)self.unschedule(self._updatePercent); } }); MyLoaderScene.preload=function(resources,cb){ var_myLoaderScene=null; (!_myLoaderScene){ _myLoaderScene= MyLoaderScene(); _myLoaderScene.init(); } _myLoaderScene.initWithResources(resources,cb); cc.director.runScene(_myLoaderScene); _myLoaderScene; 7、网页跳转

1
window.location.href= "http://www.baidu.com"

8、关于进入游戏时黑屏时间较长的处理方法

1)

@H_301_1026@ <bodystyle="padding:0;margin:0;background:#000;">

删除index.HTML中<body>标签的样式background: #000;

2)按照自己需要添加编译模块 修改project.Json如

1
"modules" :[ "core" "actions" "shape-nodes" "labels" "menus" "Transitions" "physics" "chipmunk" "gui" ],serif; Font-size:14px"> 3) 压缩game.min.Js

4) 找到CCBoot.Js中得canvasNode.style.backgroundcolor = "black";注释掉


本文由CocoaChina会员happyfhc总结,欢迎大家学习与讨论。

来源网址:http://www.cocoachina.com/bbs/read.php?tid=226079

总结

以上是内存溢出为你收集整理的Cocos2d-JS开发中的一些小技巧全部内容,希望文章能够帮你解决Cocos2d-JS开发中的一些小技巧所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)