这个JS诸暨这个地方怎么样改才可以

&nbsp>&nbsp
&nbsp>&nbsp
ios教程 &nbsp>&nbsp
cocos2d-js 自动绑定代码
摘要:之前在接入sdk的时候,因为sdk那边分了android和ios写两次吧,改的时候也难得改,所以直接写在了c++层,这样大家都方便,可是自己写的代码,如何在js调用呢,后面发现,cocos是提供了这方面的东西的,我们只需要做一个小小的改动就可以直接使用了,直接进入正题:关于接的sdk,我就不贴出来了,sdk,你懂得恶心的很这里纯粹做个例子jsnew工程我就不说了自己百度1,&frameworks/runtime-src/Classes/testBind&新
之前在接入sdk 的时候,因为sdk那边分了 android 和 ios 写两次吧,改的时候也难得改,所以直接写在了c++层 ,这样大家都方便,可是自己写的代码,如何在js调用呢,后面发现,cocos 是提供了这方面的东西的,我们只需要做一个小小的改动就可以直接使用了,直接进入正题:
关于接的sdk,我就不贴出来了,sdk ,你懂得 恶心的很 这里纯粹做个例子
js new 工程我就不说了 自己百度
1,&frameworks/runtime-src/Classes/testBind & 新建两个文件 &这里是测试 我附上代码&
TestBind.hpp
#ifndef TestBind_hpp
#define TestBind_hpp
#include &stdio.h&
#include &cocos2d.h&
#include &stdio.h&
//这里必须定义空间名称
namespace TestBind {
& & class TestBindCalss
& & public:
& & & & void testPrint();
& & private:
& & & & void testPrintPrivate();
& & protected:
& & & & void testPrintProtected();
#endif /* TestBind_hpp */
TestBind.cpp:
#include &TestBind.hpp&
namespace TestBind {
& & voidTestBindCalss::testPrint(){
& & & & CCLOG(&%s&,&测试绑定代码 ---- testPrint&);
& & voidTestBindCalss::testPrintPrivate(){
&& & CCLOG(&%s&,&测试绑定代码 ---- testPrintPrivate&);
& & voidTestBindCalss::testPrintProtected(){
& & & & CCLOG(&%s&,&测试绑定代码 ---- testPrintProtected&);
这就是个简单的c++ 程序代码,先放到这里,我们去准备绑定需要的东西
因为一般是为当前项目准备的 &那么 &为了不影响另外的项目 &在我们的工程下 新建 一个文件夹 &
tools/tojs &(为什么这么命名? 因为cocos 是这么命名的 我也跟着他命名)
接下来是很关键的一步&
在你的cocos引擎下 这个目录&
cocos_tool/cocos2d-x-3.13/tools &找到 &bindings-generator 拷贝到 & &&项目工程的&tools/tojs&
ps: 这里最好是拷贝你当前的引擎的&&bindings-generator & 版本不同 会出问题 ,如果后面出了问题 ,那么请确认 这里是不是有问题
原本 cocos 是有文件的 那么我们拿来简单用就行了&
老规矩 拷贝----- &cocos2d-x-3.13/tools/tojs/genbindings.py & ----& &&tools/tojs/genbindings.py&
什么 你想试试 ? &好 我们先试试
tools/tojs ? ? develop ●? ? python genbindings.py&PYTHON_BIN not defined, use current python.generating userconf.ini...Generating bindings for cocos2dx.../usr/bin/python: can't open file '/。。。。。。/tools/bindings-generator/generator.py': [Errno 2] No such file or directory-------------------------------------Generating javascript bindings fails.-------------------------------------
什么 路径有问题? 那我们打开文件看看 找到 &给 cocos_root = os.path.abspath(project_root) &赋值的地方 &
因为我们是针对当前项目的 改了吧 &改到当前工程来
& cocos_root = os.path.abspath(os.path.join(project_root, 'frameworks', 'cocos2d-x'))
&万一你要是不高兴 改了自己项目下的东西 想跑一个 试试呢 对吧&
好 第二个路径&
& &jsb_root = os.path.abspath(os.path.join(project_root, 'cocos/scripting/js-bindings'))
这个路径嘛 &无所谓 高兴用哪个就用哪个
jsb_root = os.path.abspath(os.path.join(cocos_root,'cocos/scripting/js-bindings')) &
&cxx_generator_root = os.path.abspath(os.path.join(project_root, 'tools/bindings-generator'))
这个很重要,他是问你 使用哪个解析器 &那不废话吗 &用我们刚刚拷贝的那个就行了,,接着改吧
&cxx_generator_root = os.path.abspath(os.path.join(project_root, 'tools/bindings-generator'))
一般的话 &我们输出的东西 针对当前项目修改的c++文件 我们都是放在 runtime-src 下 便于管理 和 使用&
好 那我们定义一个 &直接写在 &cxx_generator_root 后面就行了
& runtime_src = os.path.abspath(os.path.join(project_root, 'frameworks','runtime-src'));
往下 &有个&# save config to file
好吧 我们也做一次&
&config.set('DEFAULT', 'runtime_src', runtime_src)
下面的就是一些基本配置了&
& & & & tojs_root = '%s/tools/tojs' % project_root& & & & output_dir = '%s/cocos/scripting/js-bindings/auto' % project_root
改吧 &别废话&
tojs_root = '%s/tools/tojs' % project_rootoutput_dir = '%s/cocos/scripting/js-bindings/auto' % project_rootcmd_args = {'cocos2dx.ini' : ('cocos2d-x', 'jsb_cocos2dx_auto'), /
&cmd_args = 这个就是你要执行的配置了 &里面的内容 全部干掉 &没错 就是全部干掉
ps 这部分的完整内容
project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))cocos_root = os.path.abspath(os.path.join(project_root, 'frameworks', 'cocos2d-x'))jsb_root = os.path.abspath(os.path.join(cocos_root,'cocos/scripting/js-bindings'))cxx_generator_root = os.path.abspath(os.path.join(project_root,'tools/tojs/bindings-generator'))runtime_src = os.path.abspath(os.path.join(project_root, 'frameworks','runtime-src'));# save config to fileconfig = ConfigParser.ConfigParser()config.set('DEFAULT', 'androidndkdir', ndk_root)config.set('DEFAULT', 'clangllvmdir', llvm_path)config.set('DEFAULT', 'cocosdir', cocos_root)config.set('DEFAULT', 'jsbdir', jsb_root)config.set('DEFAULT', 'cxxgeneratordir', cxx_generator_root)config.set('DEFAULT', 'extra_flags', '')config.set('DEFAULT', 'runtime_src', runtime_src)
地方 不要用 # 注释 &如果报错 那么一般都是你 加了 注释的原因&
想试试 ? 好吧 我们去拷贝一个试试 &去拷贝 &引擎下&/tools/tojs/cocos2dx.ini &到 项目工程 tools/tojs 下 &
最激动的时候来了 执行 python genbindings.py &等待几秒钟 出现 就成功了&
咦, 我不是定义了输出路径是 生成到哪里去了 &发现在工程下 多了个cocos 文件夹
这就是我们刚刚跑代码生成的文件 api 生成到 api 目录的 &不是制定输出到 runtime 下吗 &
反过去看 原来是这里没改 &runtime-src 都没有使用过 &好吧 接着改&
output_dir = '%s/cocos/scripting/js-bindings/auto' % project_root改为
output_dir = '%s/cocos/scripting/js-bindings/auto' % runtime_src
非常nice &生成成功&
现在来开始研究ini 文件 说实话 我也不是很懂 但是 能够用就行了&
一般来讲 我们只需要配置这几个东西就行了 & 拷贝一份 cocos2d.ini &
改这几个东西&
1, 首行 & 刚刚我们写的&TestBind &那么就叫这个东西吧 &[TestBind]
2,prefix = cocos2dx & &改为&prefix =TestBind&
3,target_namespace = cc &这个是你绑定到js 层 要使用的名字 一般 我们用 项目名称 这里 我们就用 projectName &
target_namespace =&projectName
4,headers = 你要绑定的头文件 &===& &&headers = &%(runtime_src)s/Classes/testBind/TestBind.hpp
5, classes = &需要绑定的类名称 &
&classes = &TestBindCalss6, classes_need_extend = & //他没有继承任何东西 所以 &我们不写 &删掉后面的赋值就行了
classes_need_extend =
下一步 我们在 genbindings.py 修改配置 & 顺便我重新修改了输出路径 &
tojs_root = '%s/tools/tojs' % project_rootoutput_dir = '%s/js-bindings_test/auto' % runtime_srccmd_args = {#'cocos2dx.ini' : ('cocos2d-x', 'jsb_cocos2dx_auto'), /'cocos2dx_copy.ini' : ('TestBind', 'TestBind_auto')
似乎是执行成功了 我们去看看 & 路径下&
js-bindings_test/auto
这里只导出了 public 的东西 需要的筒子们 自己注意下 别所到时候没有导出来&
是不是这个时候就可以用了呢 当然不行 &我们最重要的 事情还没有做&
打开 appdelegate&
引入头文件 &
#include &js-bindings_test/auto/TestBind_auto.hpp&
sc-&addRegisterCallback 这里 注册
sc-&addRegisterCallback(register_all_TestBind);
切记 写好注释 &那么究竟是怎么找到究竟注册哪个呢 &看下面:
js-bindings_test/auto/TestBind_auto.hpp
找到这个 对了 就是这个&
重新编译工程 &你会发现&
ps js 层用法&
projectName.TestBindCalss.testPrint();
只有 public 的东西才会被绑定出来 使用的时候 自己注意,
ok,教程完毕,有什么不懂的 可以加我扣扣
大家一起交流,学习互进!
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
cocos2d-js 自动绑定代码相关信息,包括
的信息,所有cocos2d-js 自动绑定代码相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
服务与支持
账号与支持
关注阿里云
International这个js怎么改_百度知道
这个js怎么改
我有更好的答案
什么鬼?没有题
你猜我会怎么回答?
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如果你有疑问:请点击→ 来让更多的人来帮助你!
如果你得到了帮助:请点击→
如果你有更好的解决方案:请点击→ 来帮助更多的人!
如果你有好东西、好知识:请点击→ 来分享给更多的人!这两天在改 marked.js,吐槽一下各种用 js 写的 parser 都不爱在 token 里带 location data
19:56:53 +08:00 · 5267 次点击
比如大家用各种双栏预览式的markdown editor都会注意到,markdown源码和生成的预览页面往往不等长。于是很难真正的side-by-side的预览,epiceditor根本就懒得尝试做同步滚动,马克飞象好些略有同步滚(好吧,我只用过这两种)。看了下marked.js的源码才知道,原来parse出来的token里直接把这个token在源代码里的位置信息给无视了,使得从生成的内容追述到源代码几乎不可能。正经写过compiler的人都知道,在开发时加上这种基本信息就是举手之劳,事后改就等着蛋碎一地吧,而开发各种编辑工具都需要依赖这样的信息。也许这就是到现在markdown的editor功能依然很有限的原因,当然另一种解释是geek情怀不屑于用editor。还好markdown的语法不是很复杂,marked.js的源代码还算清晰没有什么nasty hack,所以还是可以做到的。之前尝试对MathJax做类似的修改,一个月后放弃了。目前还没完全改好,略buggy,过几天就能发pull request了,撸了个visualizer试了下效果先:想象下完事后,左边光标所在的token会和右边对应生成的element完全对其同步滚动是多么爽的感受。然后也许终于可以撸一个一直希望能有的markdown in-place preview editor出来(http://www.v2ex.com/t/110988)。
7 回复 &| &直到
11:14:47 +08:00
& & 20:13:17 +08:00
额其实也没啥好吐槽的啦别人没想到这个功能可能就没顺手加上去。。。。 虽然对后面的人来说可能就很烦 - -
& & 20:23:44 +08:00
@ 其实吐槽的目的还是其次,开源库拿来经常都不够用要自己加功能。
主要是觉得这现象有点过于普遍了而已,js实现的parser库好多都这样。
& & 20:36:21 +08:00
@ 大概都比较随便吧。。。
& & 09:20:06 +08:00
大赞,求Github地址
& & 09:26:55 +08:00
我觉得你发的帖子很ok,吐槽的也非常right.
& & 11:14:32 +08:00
@ Bug没修完还没push。
目前还只是在改parser,改完发PR被merge了就没自己的地址了。
Editor还得另做,Visualizer那个也就为了调试用用,不会发布。
进度可以看这个issue:
& & 11:14:47 +08:00
& · & 2193 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 50ms · UTC 13:16 · PVG 21:16 · LAX 05:16 · JFK 08:16? Do have faith in what you're doing.大家还关注AD160-600}

我要回帖

更多关于 这个地方怎么走韩文 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信