cocostudio与cocos2d-js的导入问题
2014-11-18 00:00
162 查看
用 新版本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
![](http://static.oschina.net/uploads/img/201411/18151735_TN27.png)
![](http://static.oschina.net/uploads/img/201411/18151736_sp2m.jpg)
"modules" : ["cocos2d", "extensions", "external"]//作用是增加需要用的的模块
2、加载,范例demo和helloworld都写在resource.js里面:
[javascript] view plaincopy
![](http://static.oschina.net/uploads/img/201411/18151735_TN27.png)
![](http://static.oschina.net/uploads/img/201411/18151736_sp2m.jpg)
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
![](http://static.oschina.net/uploads/img/201411/18151735_TN27.png)
![](http://static.oschina.net/uploads/img/201411/18151736_sp2m.jpg)
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
![](http://static.oschina.net/uploads/img/201411/18151735_TN27.png)
![](http://static.oschina.net/uploads/img/201411/18151736_sp2m.jpg)
var ui = ccs.uiReader.widgetFromJsonFile(CocosUI);
this.addChild(ui, 100);//100是z轴,表示放在最上面
大功告成,可以使用cocostudio了。
bug原因:cocostudio的ExportJson中并没有对导出文件的plist和png进行描述,也没有在解析加载中提供处理及异常处理。
方案:手动添加plist的预加载,不需要预加载png,因为plist中有对png的描述。
建议:引擎对该错误提供正确信息,应该提示”没有加载cocostudio项目文件“,或者干脆智能的加载了。
下面是代码:
1、在新项目的根文件夹下打开project.json文件,修改:
[javascript] view plaincopy
![](http://static.oschina.net/uploads/img/201411/18151735_TN27.png)
![](http://static.oschina.net/uploads/img/201411/18151736_sp2m.jpg)
"modules" : ["cocos2d", "extensions", "external"]//作用是增加需要用的的模块
2、加载,范例demo和helloworld都写在resource.js里面:
[javascript] view plaincopy
![](http://static.oschina.net/uploads/img/201411/18151735_TN27.png)
![](http://static.oschina.net/uploads/img/201411/18151736_sp2m.jpg)
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
![](http://static.oschina.net/uploads/img/201411/18151735_TN27.png)
![](http://static.oschina.net/uploads/img/201411/18151736_sp2m.jpg)
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
![](http://static.oschina.net/uploads/img/201411/18151735_TN27.png)
![](http://static.oschina.net/uploads/img/201411/18151736_sp2m.jpg)
var ui = ccs.uiReader.widgetFromJsonFile(CocosUI);
this.addChild(ui, 100);//100是z轴,表示放在最上面
大功告成,可以使用cocostudio了。
相关文章推荐
- 【cocos2d-js系列问题】cocos2d-js 获取cocostudio中的UI组件
- cocos2d-js取不到cocostudio里面控件问题
- cocos2d-x js binding tips 1 使用cocosbuilder导入jsb后无法响应触摸的问题
- myeclipse中导入js乱码的问题
- [导入]asp.net页面调用js乱码问题
- [Cocos2D-X]使用iconv解决VS上中文显示乱码的问题+android导入第三方库iconv
- eclipse项目里导入大量的js文件验证过慢耗时优化问题
- 【cocos2d-x从c++到js】JS与C++的交互2——JS与C++的“函数重载”问题
- [导入]JS里关于链接的小问题。
- cocos2d-x2.2.2版本+CocoStudio1.20使用问题
- Cocos2d-JS v3.0 alpha 导入 cocostudio的ui配置
- 关于导入的JS不支持中文的问题解决方法
- cocos2d-x VS解决#include "cocos-ext.h"不能用 及extensions扩展函数导入问题
- [导入]js 浮点运算表达式 精确计算(vb没有这个问题)
- 【cocos2d-x从c++到js】08:JS脚本语言的优势与一些问题 推荐
- Cocos2d-x--安装程序步骤及.js脚本引擎问题
- 导入JS时的type问题
- [导入]解决JS页面跳转ie,firefox,opera不兼容问题
- 最近整理了个js,解决了excel导入读取数据遇到的种种问题
- 【cocos2d-x从c++到js】10:JS与C++的交互2——JS与C++的“函数重载”问题 推荐