Cocos2d-JS 自定义loading界面

前端之家收集整理的这篇文章主要介绍了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 plain copy
  1. cc.LoaderScene.preload(g_resources,function(){
  2. cc.director.runScene(newHelloWorldScene());
  3. },this);
改为(其实就是不用cc.LoaderScene.preload这个函数...):
copy
    //cc.LoaderScene.preload(g_resources,function(){
  1. //},this);

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

copy
    "jsList":[
  1. "src/resource.js",
  2. "src/app.js",
  3. "src/loading.js"
  4. ]

3.在loading.js里面添加以下代码
copy
    varloadindLayer=cc.LayerColor.extend({//继承LayerColor,初始化的时候可以直接改背景颜色
  1. a:0,//记录当前加载了多少个文件
  2. ctor: this._super(cc.color(100,255));
  3. varsize=cc.winSize;
  4. //添加一个文本框显示
  5. varl=newcc.LabelTTF("currentpercent:0%","Arial",38);
  6. //居中
  7. l.x=size.width*0.5;
  8. l.y=size.height*0.5;
  9. this.addChild(l,11,12);
  10. //加载文件的几种方式,特别是在cc.loader里面,还有好多种加载的函数,记得把加载的资源路径和文件名改掉
  11. ccs.armatureDataManager.addArmatureFileInfoAsync("res/armatures/logo.png","res/armatures/logo.plist","res/armatures/logo.xml",153); font-weight:bold; background-color:inherit">this.loadCall,153); font-weight:bold; background-color:inherit">this);
  12. cc.textureCache.addImage("res/armatures/robot.png",153); font-weight:bold; background-color:inherit">this);
  13. cc.loader.load("res/armatures/bg.jpg",248)"> },
  14. loadCall://每次调用进行计数
  15. this.a++;
  16. //以tag的形式获取文本框对象
  17. varsubTile=this.getChildByTag(12);
  18. //toFixed(2)意思是取小数点后两位,小数点后第三位为四舍五入
  19. subTile.setString("currentpercent:"+(this.a/3).toFixed(2)*100+"%");
  20. //加载完毕,貌似好多教程都是用百分比判断(>=1)
  21. if(this.a==3){
  22. //带翻页动画的场景跳转,第一个参数为动画的执行时间,第二个为跳到的场景,第三个为false时从右下角往左边翻页,true时左边往右边翻页
  23. vartrans=newcc.TransitionPageTurn(0.5,153); font-weight:bold; background-color:inherit">newHelloScene(),153); font-weight:bold; background-color:inherit">false);
  24. cc.director.runScene(trans);
  25. }
  26. });
  27. varHelloScene=cc.Scene.extend({
  28. onEnter:function(){
  29. this._super();
  30. //加载app.js的layer
  31. varlayer=newHelloWorldLayer();
  32. this.addChild(layer);
  33. });

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


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

copy
    varHelloWorldScene=cc.Scene.extend({
  1. //自定义loading的layer
  2. newloadindLayer();
  3. });

最后看看效果






5.web上的建议修改

不能用这个方法加载文件

copy
    ccs.armatureDataManager.addArmatureFileInfoAsync("res/armatures/logo.png",153); font-weight:bold; background-color:inherit">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)进行,效果如下:

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

猜你在找的Cocos2d-x相关文章