什麼是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文件