在js代码中使用ccs,报错如下:ccs.GUIReader is undefined.
请问这个问题应该如何解决?
版本是cocos2dx3.0 beta2
楼主您好,感谢您对Cocostudio的支持,由于Cocostudio的新示例尚未覆盖到jsb绑定部分而对大家造成困扰,接下来我们计划会提供一些关于cocostudio在lua、js等层面的教程及完整示例。
版主你好!能不能简单的说下如何对ccs进行js绑定?谢谢了!
你好,目前cocos2d-x已经对cocostudio部分做过js的绑定了,您可以直接使用而不必自己绑定。
用法可以参考cocos2d-x\samples\Javascript\Shared\tests\CocoStudioTest 中的测试示例,查看使用方法。
如添加一个UI界面的方法为
this._widget = ccs.GUIReader.getInstance().widgetFromJsonFile(“res/cocosgui/UITest/UITest.json”);
this._uiLayer.addWidget(this._widget);
我使用的时候,出现了“ccs.GUIReader undefined ”的错误。工程是用3.0beta2版本tools/project_creator目录下的脚本创建的。
请问您使用ccs.GUIReader.getInstance()方法是否也是如此呢?
是的。
使用:ccs.GUIReader.getInstance().widgetFromJsonFile(“res/ui/test.json”);
提示:ccs.GUIReader is undefined
使用:ccs.GUIReader.getInstance(); 也是如此。
请问楼主创建的项目中是否包含了jsb绑定类呢?
是的。包含这四个。另外,我还把libJSBindingForStudio和libJSBindingForGui也包含了,依旧不行。
有包含这两个么?
(EngineRoot)cocos\scripting\auto-generated\js-bindings
(EngineRoot)cocos\scripting\javascript\bindings
请参考testJavascript示例的附加包含目录属性
是的,包含这两个。我将版主大大这里包含的全部包含了,依然提示ccs.GUIReader is undefined.
另外,在“通用属性-引用”中我也将它们的引用添加进来了。
我想问下,版主大大使用tools创建的js工程需要经过配置才能使用ccs吗?还是说直接就可以使用呢?如果需要配置,那么除了在项目和附件目录中包含它们之外,还需要做什么呢?
哈!确实还漏了这一步!谢谢吐槽哥和版主两位大大!
整理一下,在js中使用ccs需要:
1.添加到解决方案并引用libCocosStudio、libGUI、libJSBindingForStudio、libJSBindingForGui、libJSBinding、libJSBindingForExtension。(其中部分已添加并引用,部分需要自己添加并引用);
2.附加包含目录:$(EngineRoot)cocos\editor-support;(EngineRoot)cocos\scripting\auto-generated\js-bindings;(EngineRoot)cocos\scripting\javascript\bindings;$(EngineRoot)extensions;(部分已附加)
3.在 AppDelegate.cpp中:
头文件包含:
#include “jsb_cocos2dx_studio_auto.hpp”
#include “jsb_cocos2dx_gui_auto.hpp”
#include “cocostudio/jsb_cocos2dx_studio_manual.h”
#include “gui/jsb_cocos2dx_gui_manual.h”
函数注册:
sc->addRegisterCallback(register_all_cocos2dx_gui);
sc->addRegisterCallback(register_all_cocos2dx_gui_manual);
sc->addRegisterCallback(register_all_cocos2dx_studio);
sc->addRegisterCallback(register_all_cocos2dx_studio_manual);
下班后再回去从头开始进行一次,将准确的内容放上来。
鼓励有空一定要分享一下实践流程
那cocostudio当中的控件如何交互呢?
貌似木有和cocos2d当中一样的方法,来添加单个控件事件!