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

前端之家收集整理的这篇文章主要介绍了Cocos2d-JS开发中的一些小技巧前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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]);
null;
};


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

6
7
8
9
10
varMyButtonSprite=cc.Sprite.extend({
ctor:function(fileName,title,fontName,fontSize){
this ._super(fileName);
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){
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){
alert(data[ "name" ]);
//todosomething
}
6、自定义Loading界面

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
@H_404_525@ 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,
_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);
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();
}
@H_502_981@ _myLoaderScene.initWithResources(resources,cb);
cc.director.runScene(_myLoaderScene);
_myLoaderScene;
7、网页跳转

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

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

1)

<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-x相关文章