【发布时间】:2014-11-05 16:29:12
【问题描述】:
documentation 解释了如何生成 jsbindings,但没有说明将其集成到项目中的正确方法。我必须遵循哪些步骤?我应该在哪里存储我手动编写的 C++ 文件?我应该在哪里存储生成的 js 和 c++ 文件?我应该编辑哪些 CMakeList.txt 文件?
【问题讨论】:
标签: javascript c++ cmake cocos2d-x cocos2d-js
documentation 解释了如何生成 jsbindings,但没有说明将其集成到项目中的正确方法。我必须遵循哪些步骤?我应该在哪里存储我手动编写的 C++ 文件?我应该在哪里存储生成的 js 和 c++ 文件?我应该编辑哪些 CMakeList.txt 文件?
【问题讨论】:
标签: javascript c++ cmake cocos2d-x cocos2d-js
我相信我找到了一些方法来做到这一点。 请确认我没有做错任何事情(我在official forum 上复制了这条消息)。
让我们将 js-bindings 测试样本集成到一个 cocos2d-js 项目中。
cd tools/bindings-generator/test && ./test.sh && cd ../../..(可能需要一些配置)。目前由于缺少标头,它在 Linux 上失败,但我提交了 merge request。cp -R tools/bindings-generator/test/simple_test/ frameworks/runtime-src/Classes
cp -R tools/bindings-generator/test/simple_test_bindings/ frameworks/runtime-src/Classes
CMakeLists.txt和frameworks/runtime-src/proj.android/jni/Android.mk并将添加的文件autogentestbindings.cpp和simple_class.cpp添加到目标列表中。AppDelegate::applicationDidFinishLaunching 中添加sc->addRegisterCallback(register_all_autogentestbindings); 在frameworks/runtime-src/Classes/AppDelegate.cpp 中注册运行时源中的jsb 函数
然后simple_class.h 中定义的类可以在 Javascript 中使用。以下 JS 代码应显示 1337。
console.log((new SimpleNativeClass(1337)).getSomeField())
【讨论】: