什么是JSBjavascript
JSB是JavaScript binding的简称。Cocos2d-JS中使用的javascript引擎是Mozilla 的spidermonkey,而JSB绑定的目的就是让javascript脚本可以调用到c++代码,c++代码可以调用到javascript脚本。php
怎么生成JSB绑定html
一、自动生成脚本java
(1)、确认好你的Binding-generatorpython
cocos2d-x下载下来后,tools目录底下有一个名为bindings-generator的文件夹,这就是自动绑定须要的工具。
若是仍需下载,请到github。
GitHub repository: https://github.com/cocos2d/bindings-generatorandroid
(2)、下载MacPorts软件包管理系统,经过MacPorts咱们能够经过命令行快速的安装须要的软件(官方网站: http://www.macports.org/install.php)。c++
安装完后须要在.bash_profile里添加搜索路径:具体方法是在终端输入vim ~/.bash_profile,而后分别插入export
PATH=
/opt/local/bin
:$PATH 、
gitexport
PATH=
/opt/local/sbin
:$PATH。
使用MacPort前应该首先更新Port的index,输入: $ sudo port -v selfupdate (强烈推荐第一次运行的时候使用-v参数,显示详细的更新过程)github
(注:在使用MacPort时提示找不到port,要肯定是否设置好搜索路径等环境变量)正则表达式
(3)、开始使用MacPort安装须要软件
Python 2.7.x(下载地址):目前引擎里面的bindings-generator只支持python2.7.x版本
py-ymal(下载地址):这是python的一个第三方包,下载页有不一样系统的安装方式,能够参考generator.py会调用到这个包。
cheetah(下载地址):这也是python的一个第三方包,一个模板,generator.py会调用到这个包,安装方式跟py-ymal相同。
sudo
port
install
python27 py27-yaml py27-cheetah
安装 llvm-3.3,这个须要单独下载安装,下载地址 http://llvm.org/releases/download.html#3.3
下载完后请解压至Users/你的名字/bin底下,并将解压岀來的文件夹改名成clang+llvm-3.3。若是沒有bin文件夹,请自行建立。最后的路径应该是这样的:
/Users/lp43/bin/clang
+llvm-3.3(lp43是个人名字)
androidndkdir=
android-ndk-r9存放目录
clangllvmdir=llvm-3.3安装目录
cxxgeneratordir=
bindings-generator存放目录
[DEFAULT]
PYTHON_BIN=
python2
.7安装目录
coco2dx_coustom对应cocos2dx_custon.ini里面的name,jsb_cocos2dx_custom对应cocos2dx_custon.ini里面的prefix
(7)、生成绑定文件,运行命令python ./test.py,成功后能够在frameworks/cocos2d-x/cocos/scripting/js-bindings/custom文件夹下看到生成的绑定文件。(注:生成目录可能有所不一样)
(8)、绑定文件使用,将文件加入工程

打开 jsb_cocos2dx_custom.hpp找到
register_all_cocos2dx_custom(JSContext* cx, JSObject* obj),而后将绑定js注册到AppDelegate.cpp里面
sc->addRegisterCallback(register_all_cocos2dx_custom);
(注:记得绑定到原文件也要加到工程中,jsBing只是个转接口)
(9)、测试
var customClass = cc.CustomClass.create();
var msg = customClass.helloMsg()
cc.log("customClass's msg is : " + msg)
注:绑定原文件以下
cocos2dx_custon.ini文件