Cocos2d-JS 自定义loading界面

环境:

win7 64位

Cocos2d-JS v3.1

Cocos Code IDE v1.0.0.Final

本文介绍的方法比较随意,另官方也有规范的教程:http://www.cocos2d-x.org/docs/manual/framework/html5/v2/customize-loading-screen/zh

在非web上进行测试,web版的话大家自己改改,本文后面也会介绍。

正文:

1.在main.js里面把这个方法

[javascript]view plaincopy

cc.LoaderScene.preload(g_resources, function () {  

cc.director.runScene(new HelloWorldScene());  

},this);  

改为(其实就是不用cc.LoaderScene.preload这个函数...):

[javascript]view plaincopy

//    cc.LoaderScene.preload(g_resources, function () {  

cc.director.runScene(new HelloWorldScene());  

//    }, this);  

2.在src下新建一个loading.js文件,然后在project.json里面注册

[javascript]view plaincopy

"jsList":[  

"src/resource.js",  

"src/app.js",  

"src/loading.js"  

   ]  

3.在loading.js里面添加以下代码

[javascript]view plaincopy

var loadindLayer = cc.LayerColor.extend({//继承LayerColor,初始化的时候可以直接改背景颜色  

a:0,//记录当前加载了多少个文件  

ctor :function() {  

this._super(cc.color(100, 0, 0, 255));  

var size = cc.winSize;  

//添加一个文本框显示  

var l = new cc.LabelTTF("current percent : 0%", "Arial", 38);  

//居中  

        l.x = size.width * 0.5;  

        l.y = size.height * 0.5;  

this.addChild(l, 11, 12);  

//加载文件的几种方式,特别是在cc.loader里面,还有好多种加载的函数,记得把加载的资源路径和文件名改掉  

ccs.armatureDataManager.addArmatureFileInfoAsync("res/armatures/logo.png","res/armatures/logo.plist","res/armatures/logo.xml",this.loadCall,this);  

cc.textureCache.addImage("res/armatures/robot.png",this.loadCall,this);  

cc.loader.load("res/armatures/bg.jpg", this.loadCall,this);  

    },  

loadCall :function() {  

//每次调用进行计数  

this.a ++;  

//以tag的形式获取文本框对象  

var subTile = this.getChildByTag(12);  

//toFixed(2)意思是取小数点后两位,小数点后第三位为四舍五入  

subTile.setString("current percent :" + (this.a / 3).toFixed(2) *100 + "%");  

//加载完毕,貌似好多教程都是用百分比判断( >= 1 )  

if (this.a == 3) {  

//带翻页动画的场景跳转,第一个参数为动画的执行时间,第二个为跳到的场景,第三个为false时从右下角往左边翻页,true时左边往右边翻页  

var trans = new cc.TransitionPageTurn(0.5, new HelloScene(), false);  

            cc.director.runScene(trans);  

        }  

    },  

});  


var HelloScene = cc.Scene.extend({  

onEnter:function () {  

this._super();  

//加载app.js的layer  

var layer = new HelloWorldLayer();  

this.addChild(layer);  

    }  

});  

注意加载文件函数里面加载的文件要改为自己工程当前目录下的文件路径和文件名称

4.app.js里面最后的场景加载的layer改为loading的layer

[javascript]view plaincopy

var HelloWorldScene = cc.Scene.extend({  

onEnter:function () {  

this._super();  

//自定义loading的layer  

var layer = new loadindLayer();  

this.addChild(layer);  

    }  

});  

最后看看效果:

5.web上的建议修改

不能用这个方法加载文件

[javascript]view plaincopy

ccs.armatureDataManager.addArmatureFileInfoAsync("res/armatures/logo.png","res/armatures/logo.plist","res/armatures/logo.xml",this.loadCall,this);  

然后loading跳转后的场景里面用上的资源请在loading的时候加载

Loading界面是一个cc.Scene具体请看:

http://blog.csdn.net/jonahzheng/article/details/38348255

如果仅仅是想把图片(cocos logo)换掉的话可以修改(frameworks/cocos2d-html5/Base64Images.js)中

?

cc._loaderImage

变量的值,该值为base64编码的图片数据,在css3中用这个字符串可以直接作为背景,图片到base64编码的转换可以通过这个网站(http://tool.css-js.com/base64.html)进行,效果如下:

随便说一下这个文件中另外两个变量:

cc._loadingImage,是一个gif图,就是等待的动态图

cc._fpsImage,大概是使用WebGL显示fps用的数字贴图,图片里面都是重复的数字,如果不用WebGL纯粹用canvas的话,可以把这个字符清空,这样文件也小不少

来源http://blog.csdn.net/houjia159/article/details/44096603

我自己修改cc.loaderScene

init: function() {

var t = this,

e = 160,

i = 200,

n = t._bgLayer = new cc.LayerColor(cc.color(255, 242, 200, 255));

t.addChild(n, 0);

var r = 24,

o = -i / 2 + 100;

cc._loaderImage && (cc.loader.loadImg(cc._loaderImage, {

isCrossOrigin: !1

}, function(n, r) {

e = r.width, i = r.height,

// t._initStage(r, cc.visibleRect.center)

t._initStage(cc.visibleRect.center)

}), r = 14, o = -i / 2 - 10);

var s = t._label = new cc.LabelTTF("Loading... 0%", "Arial", r);

return s.setPosition(cc.pAdd(cc.visibleRect.center, cc.p(0, o))), s.setColor(cc.color(180, 180, 180)), n.addChild(this._label, 10), !0

},

// _initStage: function(t, e) {

_initStage: function(e) {

var i = this,m = 0.45

// n = i._texture2d = new cc.Texture2D;

// n.initWithElement(t), n.handleLoadedTexture();

x1 = cc.textureCache.addImage("loading1.png"),

x2 = cc.textureCache.addImage("loading2.png"),

x3 = cc.textureCache.addImage("loading3.png"),

x4 = cc.textureCache.addImage("loading4.png");

var r = i._logo = new cc.Sprite(x1);

r.setScale(cc.contentScaleFactor()/2.5), r.x = e.x, r.y = e.y, i._bgLayer.addChild(r, 10),

r.runAction(cc.sequence(

cc.delayTime(m),

cc.callFunc(function(){

r.setTexture(x1)

}),

cc.delayTime(m),

cc.callFunc(function(){

r.setTexture(x2)

}),

cc.delayTime(m),

cc.callFunc(function(){

r.setTexture(x3)

}),

cc.delayTime(m),

cc.callFunc(function(){

r.setTexture(x4)

})

).repeatForever())

},

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容