Cocos2d-x JSB 自己主动绑定bindings
Javascript Binding (简称JSB) 自己主动绑定教程。
Cocos2d-x JSB 自己主动绑定bindings-generator (以下简称B-G) 使用心得
假设想弄清深入原理,推荐阅读 Cocos2D-x从C++到JS的进阶之路: http://blog.51cto.com/zt/560
B-G 是什么?
当使用JSB的时候,假设你想要使用的C++的类或者方法没有在已有JSB中被绑定,这时候。就能够使用B-G。
它能够生成相相应的C++的绑定文件和相相应的JS接口,届时,你仅仅须要调用生成的相相应的JS接口,它将自己主动转换成原来的C++的类。相当于直接调用原来的C++方法或者类。
B-G生成主要流程:
准备好必要的工具 -> 准备好你要绑定的C++的文件 -> 写生成文件的.ini配置文件和.sh 脚本程序 -> 执行 .sh 脚本文件 -> 生成绑定文件 -> 測试绑定文件直至能够正常使用
必要的工具:
cocos2d-x引擎:http://cocos2d-x.org/projects/cocos2d-x/wiki/Download
python 2.7:http://www.python.org/download/ (眼下引擎里面的bindings-generator仅仅支持python2.7版本号)
py-ymal: http://pyyaml.org/wiki/PyYAML (这是python的一个第三方包。下载页有不同系统的安装方式,能够參考。
generator.py会调用到这个包。
)
cheetah:http://www.cheetahtemplate.org/ (这也是python的一个第三方包,一个模板。generator.py会调用到这个包。安装方式跟py-ymal同样。)
libclang:http://llvm.org/releases/3.1/clang+llvm-3.1-x86_64-apple-darwin11.tar.gz (生成的时候须要用到的lib,注意master分支也就是2.2.2这个版本号的引擎用3.1的,develop分支也就是3.0版本号的引擎用3.3的)
Android NDK:http://dl.google.com/android/ndk/android-ndk-r8c-darwin-x86.tar.bz2 (測试的时候使用的v2.2.2用的r8c, 如今的3.0beta版须要用r9b)
.ini文件
參考样例:cocos2dx引擎根文件夹/tools/bindings-generator/test/test.ini
cocos2dx引擎根文件夹 /tools/tojs/cocos2dx_extension.ini
cocos2dx引擎根文件夹 /tools/tojs/cocos2dx.ini
.ini中部分參数的使用方法:
name: 单纯仅仅是名称。
prefix: 最后生成的文件都会以这个命名前缀,如 prefix.cpp, prefix.hpp, prefix_api.js
classes: 你的所需转换的类的名称。必须是所导入的头文件里全部的类,这里能够使用正則表達式来增加多个类,參考cocox2dx.ini。
extra_arguments: 一些接口所需的系统參数。如clang包。android ndk包的引入所需的系统參数,写法能够參照以上三个.ini。
headers: 你所须要绑定的头文件路径。
target_namespace:命名空间。最后生成的JS文件的类。会以这个命名空间开头。比如你的类为sqlite。命名空间为cocos2dx。那么最后生成的就是cocos2dx.sqlite。
rename_functions:能够将你要绑定的方法的名称更改成你所要的。能够更改多个。用逗号隔开,写法參照 SqliteCpp::[sqlite3_execCpp=sqlite3_exec]。这个就是将SqliteCpp中的sqlite3_ execCpp方法重命名为sqlite3_exec方法。
rename_classes :同上。重命名类。
skip :跳过你所不须要绑定的方法和类,于是就不生成。
.sh文件:主要调用程序。用来读取.ini配置文件和写部分參数。
參考样例: cocos2dx引擎根文件夹 /tools/tojs/genbindings.sh
cocos2dx引擎根文件夹 /tools/bindings-generator/test/test.sh
以下这句话便设定了通过调用generator.py来调用你的配置文件。并在你所设定的敌方生成你须要的绑定文件。
set -x LD_LIBRARY_PATH=${CLANG_ROOT}/lib $PYTHON_BIN ${CXX_GENERATOR_ROOT}/generator.py ${TO_JS_ROOT}/sqlite.ini -s sqlite -o ${TO_JS_ROOT}/sqliteBinding
写好.ini和.sh后,在cmd执行 sudo 你的.sh路径 。便能够在你配置的地方找到你生成的文件。
转载于:https://www.cnblogs.com/zhchoutai/p/8608989.html
Cocos2d-x JSB 自己主动绑定bindings相关推荐
- 回调函数传参c++_流程篇 | 避免 eval String 进行回调,使用 JSB 进行手动绑定
想要聚焦 Cocos Creator.Flutter.React Native 等跨平台开发技术实践吗?请大家积极关注我们的技术博客 https://oedx.github.io 背景 一直以来,AB ...
- RabbitMQ绑定(bindings)
什么是bingding.呢, binding其实是exchange和queue之间的桥梁,它告诉我们exchange和那个队列进行了绑定关系.比如说下面这张图告诉我们的就是×与Q1和Q2进行了绑定
- javascript 自己主动绑定JS callback 的方法函数
自己写的一个javascript 智能绑定callback 而且调用运行的函数.主要用于异步请求的 ajax中: <!DOCTYPE html> <html> <head ...
- Cocos Creator JSB [Lv.3]
目录 摘要 资源 正式开始 为什么要使用`JSB` `JSB`能做什么 进行`JSB`绑定需要做什么 构建工程 创建类 绑定(搭建桥梁) 实现自定义的类型转换(非必须) 注册 将新增的文件加入`lib ...
- Cocos Creator JSB [Lv.1] (1)
目录 摘要 系列文章 JSB能做什么 环境 资源 准备工作 正式开始 对工程做一些修改 如何互动 小姐姐现身 与小姐姐互动的桥梁 找到小姐姐 划重点 摘要 本系列文章主要实操JSB的手动绑定,在官方教 ...
- MVVM下拉框绑定触发事件
开发工具与关键技术:MVVM 撰写时间:2021年06月15日 在MVVM中下拉框的绑定跟MVC的下拉框绑定基本一样,只不过在MVVM中要写多一步声明下拉框的属性来接收数据. 首先我们要在DAL层写查 ...
- JS创建对象和事件绑定
JS对象 1.对象的创建 1.使用原始的方式创建对象 var obj = new Object();obj.name = "zhangsan"; //为obj对象添加属性obj.a ...
- RabbitMQ简介以及AMQP协议
RabbitMQ能为你做些什么? 消息系统允许软件.应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和接收分离来实现应用程序的异步 ...
- 消息中间件系列 - RabbitMQ
前言 本内容仅用于个人学习笔记,如有侵扰,联系删除 学习视频:https://www.bilibili.com/video/BV1cb4y1o7zz?spm_id_from=333.337.searc ...
最新文章
- python生产和消费模型_python queue和生产者和消费者模型
- vivado----fpga硬件调试 (六)----数据导出
- Apache Beam和BigQuery的错误处理(Java SDK)
- hashCode和equals方法的关系
- Eclipse-Java代码规范和质量检查插件-PMD
- Kafka基础系列第1讲:Kafka的诞生背景及应用
- 微软阵营企稳的利好消息:.NET开源、Visual Studio免费
- 【Clickhouse】Clickhouse Live View
- CSS3制作动画的三个属性
- android 自动打印出来,Android:签名打包后关闭Log打印
- 设计模式之桥接模式(Java语言描述)
- win10桌面管理文件收纳_放心的电脑桌面收纳工具必备,电脑桌面win10应用商店
- 无约束多元函数求极值
- adprw指令通讯案例_S7200和威纶通触摸屏MODBUS RTU协议通讯
- 舵机的基本了解以及数字舵机和模拟舵机的区别
- linux进化树分析的软件,一款好用的进化树可视化编辑软件
- 操作系统4.1.8 文件保护
- 此实现不是windows平台fips验证的加密算法的一部分
- HTML+CSS实现聚光灯效果
- 利用winform 操作access 数据库
热门文章
- matlab完成信源编码译码,Huffman编码和译码的MATLAB实现.doc
- Java:Set接口
- 第十三章:项目相关方管理 - (13.1 识别相关方)
- Nextchip系列芯片资料收集----RX/ISP/AHD使用场景
- 【图文详解】一文全面彻底搞懂HBase、LevelDB、RocksDB等NoSQL背后的存储原理:LSM-tree 日志结构合并树...
- [LeetCode]题解(python):155-Min Stack
- 设计模式-原型模式C++
- IPv4 Type of Service服务类型(TOS)字段
- linux卡利系统设置密码,Windows 10 Windows Linux子系统安装指南-官网
- 数据库基本知识和命令