在cocos2d-js-v3.0 中使用cocostudio UI的正确方式
2015-07-23 12:21
585 查看
用新版本cocos2d-js开发jsb的时候,发现cocos2dx js 找不到cocostudio json 中的图,无法加载cocostudio的UI,debug提示找不到图片。花了我两个多小时,才发现新api的bug。果断决定写个如何在cocos2d-js-v3.0 jsb 中使用cocostudio UI的博客,分享出来!
bug原因:cocostudio的ExportJson中并没有对导出文件的plist和png进行描述,也没有在解析加载中提供处理及异常处理。
方案:手动添加plist的预加载,不需要预加载png,因为plist中有对png的描述。
建议:引擎对该错误提供正确信息,应该提示”没有加载cocostudio项目文件“,或者干脆智能的加载了。
下面是代码:
1、在新项目的根文件夹下打开project.json文件,修改:
[javascript] view plaincopy
"modules" : ["cocos2d", "extensions", "external"]//作用是增加需要用的的模块
2、加载,范例demo和helloworld都写在resource.js里面:
[javascript] view plaincopy
var CocosUI = "res/CocosUI.ExportJson";//网上很多帖子这个地方写的文件后缀依然是json,不谨慎啊!
var CocosUI_plist = "res/CocosUI.plist";//最重要的一句,错误的根源,其他版本教程都没有写这句,都是坑人的,事实上没有这是运行不了解的。
var res = {
HelloWorld_png : "res/HelloWorld.png",
CloseNormal_png : "res/CloseNormal.png",
CloseSelected_png : "res/CloseSelected.png",
};
var g_resources = [
//image
res.HelloWorld_png,
res.CloseNormal_png,
res.CloseSelected_png,
//json
CocosUI_plist,//重要:在预加载中加载ui,根据经验将plist加载放在json前面
CocosUI
];
3、main.js
[javascript] view plaincopy
cc.game.onStart = function(){
cc.view.setDesignResolutionSize(640, 960, cc.ResolutionPolicy.SHOW_ALL);
cc.view.resizeWithBrowserSize(true);
//load resources
cc.LoaderScene.preload(g_resources, function () {
cc.director.runScene(new HelloWorldScene());
}, this);
};
cc.game.run();
4、业务程序中使用,一般在layer的初始化中:
[html] view plaincopy
var ui = ccs.uiReader.widgetFromJsonFile(CocosUI);
this.addChild(ui, 100);//100是z轴,表示放在最上面
大功告成,可以使用cocostudio了。
源引:http://yvdedu.com/news/423.html
bug原因:cocostudio的ExportJson中并没有对导出文件的plist和png进行描述,也没有在解析加载中提供处理及异常处理。
方案:手动添加plist的预加载,不需要预加载png,因为plist中有对png的描述。
建议:引擎对该错误提供正确信息,应该提示”没有加载cocostudio项目文件“,或者干脆智能的加载了。
下面是代码:
1、在新项目的根文件夹下打开project.json文件,修改:
[javascript] view plaincopy
"modules" : ["cocos2d", "extensions", "external"]//作用是增加需要用的的模块
2、加载,范例demo和helloworld都写在resource.js里面:
[javascript] view plaincopy
var CocosUI = "res/CocosUI.ExportJson";//网上很多帖子这个地方写的文件后缀依然是json,不谨慎啊!
var CocosUI_plist = "res/CocosUI.plist";//最重要的一句,错误的根源,其他版本教程都没有写这句,都是坑人的,事实上没有这是运行不了解的。
var res = {
HelloWorld_png : "res/HelloWorld.png",
CloseNormal_png : "res/CloseNormal.png",
CloseSelected_png : "res/CloseSelected.png",
};
var g_resources = [
//image
res.HelloWorld_png,
res.CloseNormal_png,
res.CloseSelected_png,
//json
CocosUI_plist,//重要:在预加载中加载ui,根据经验将plist加载放在json前面
CocosUI
];
3、main.js
[javascript] view plaincopy
cc.game.onStart = function(){
cc.view.setDesignResolutionSize(640, 960, cc.ResolutionPolicy.SHOW_ALL);
cc.view.resizeWithBrowserSize(true);
//load resources
cc.LoaderScene.preload(g_resources, function () {
cc.director.runScene(new HelloWorldScene());
}, this);
};
cc.game.run();
4、业务程序中使用,一般在layer的初始化中:
[html] view plaincopy
var ui = ccs.uiReader.widgetFromJsonFile(CocosUI);
this.addChild(ui, 100);//100是z轴,表示放在最上面
大功告成,可以使用cocostudio了。
源引:http://yvdedu.com/news/423.html
相关文章推荐
- 如何使用cocos2dx-jsbinding 来处理分辨率适配
- Cocos2d-js的屏幕适配方案
- Cocos移植到Android-使用Eclipse交叉编译打包
- [Cocos2d-x v3.x官方文档]Cocos2d-x 3.0坐标系详解
- Cocos2d-JS坐标系
- cocos2dx坐标系统学习
- 一、cocos2dx之如何优化内存使用(高级篇)
- 在Cocos2d-x正在使用SQLlite数据库
- 【Cocos2d入门教程十四】Cocos2d-x与Java的通讯
- cocos2dx 常用宏和函数
- 【Cocos2d入门教程一】Cocos2d-x环境搭建
- cocos2d-x 入门之Director,SceneLayer,Sprite
- cocos2d-x 入门之初次使用
- CocosDeshion's android.mk 文件的理解
- Cocos2d-x制作跳棋结束总结
- cocos2d-x学习之飞镖打妖怪
- 细说Cocos2d-JS——序
- Cocos2d-x开发教程 第二节 基本概念
- quick cocos2d-x 与android实现更换头像
- Cocos2d-x中的CCARRAY_FOREACH的使用