js绑定c++(JSB或者jsbinding)的小白教程! (已完结)

非常适合我第一次绑定的人!

http://forum.cocos.com/t/creator-object-c-js/36109
Cocos2dxJavascriptJavaBridge.evalString

谢谢, 我问的是c++ -> js的方式 ,现在已经解决,也多谢你的回答.

c++调用js 你是怎么实现的呢 可以发下源码吗

这个方法就可以调的

1赞

pc上能够运行显示,发布web版本就不行,怎么回事呢

你好在吗?写教程辛苦了!

要说“但是”了,我按照教程做到检查绑定成功那里就过不去了,就是这里:


目录下运行 genbindings.py 这个文件,建议不要直接双击,双击看不到绑定成功还是失败,用命令行运行:

genbindings.py,如果成功会出现Generating javascript bindings succeeds 的字样,然后进入

Creator软件根目录\app-1.1.1\resources\cocos2d-x\cocos\scripting\js-bindings\auto

这个目录下查看绑定好的文件,如果成功绑定,目录下的文件的修改日期就是现在

按上面执行的结果:

请问这个怎么搞?

搞定了,以后cocos再推出什么东西,一定要说,请安装所有软件时,都要使用32位版本!!!

请问这里是 重新生成debug还是release?我重新生成后,creator里模拟器启动就报错

订,赞赞赞,MARK一下

需要注意一下,绑定时,如果有构造函数,并且没有继承ref,导出时,会报错,把构造放到private里,用一个静态接口实现创建对象,这样就可以正常了(本人遇到的问题,是这样解决的)

1赞

这个目录在哪里,
我用的cocos2d-x-lite tag: 1.3.2

mark一下 以后有用

使用xcode的同学注意:添加文件到项目的时候


记得点它 然后

这两个都勾选上 否则链接的时候会报错 如果不点那个options的话 默认是不会两个都勾选的 所以要手动选择 (在这卡了两天 都是链接出错)

另外在构建项目后可以直接在项目的tojs目录操作而不必在creator的tojs目录生成后再复制那么麻烦

genbindings.py必须在tojs目录下 否则无法绑定 本来我想直接在classes目录下用genbindings.py的但是失败了

表示有构造函数 没有继承任何累 并没有报错啊
在js里面new出来然后调用函数也没问题

也许是 bindings-generator 这个版本的问题,因为我没有更新这个,用的旧的,可能新的版本已经解决了

安装上面的步骤,js自动绑定c++
直接复制的测试代码,
在最新版本的cocos2d-x-3.14.1总
$ python genbindings.py
… … Processing section jsbTest

Traceback (most recent call last):
File “/Users/zt-2010271/workspace_svn/cocos2dx/RTCChat/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py”, line 1550, in
main()
File “/Users/zt-2010271/workspace_svn/cocos2dx/RTCChat/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py”, line 1546, in main
generator.generate_code()
File “/Users/zt-2010271/workspace_svn/cocos2dx/RTCChat/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py”, line 1203, in generate_code
self._parse_headers()
File “/Users/zt-2010271/workspace_svn/cocos2dx/RTCChat/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/generator.py”, line 1237, in _parse_headers
tu = self.index.parse(header, self.clang_args)
File “/Users/zt-2010271/workspace_svn/cocos2dx/RTCChat/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/clang/cindex.py”, line 2113, in parse
self)
File “/Users/zt-2010271/workspace_svn/cocos2dx/RTCChat/build/jsb-default/frameworks/cocos2d-x/tools/bindings-generator/clang/cindex.py”, line 2225, in from_source
raise TranslationUnitLoadError(“Error parsing translation unit.”)
TranslationUnitLoadError: Error parsing translation unit.

Generating javascript bindings fails.

TranslationUnitLoadError

PY是32位的吗?好像只能用32位的

mark 以后 可能有用 谢谢 up

我放在 coco2d-x-3.14 目录下编译过了,工程目录下面的coco 不行,估计是路径什么的原因