Cocos Creator 教程:JSB2.0反射js代碼

由於之前使用版本是1.4.0來開發遊戲,當把升級到1.9.1時。發佈原生平臺時,發現與1.4有很大的不同。原因是從 v1.7 開始引入 JSB 2.0 ,其中js代碼反射原生還沒什麼問題。當原生反射到js函數時就會出問題了。下面就講解下如何在v1.7以後的版本中使用原生函數反射js代碼。

image

Android平臺

在v1.6以前可以直接使用:

Cocos2dxJavascriptJavaBridge.evalString("你的代碼");

v1.7以後只能用以下方式:

 Cocos2dxHelper.runOnGLThread(new Runnable() {
      @Override
      public void run() {
			Cocos2dxJavascriptJavaBridge.evalString("你的代碼");
	        }
});

ios平臺

在v1.6以前是引入#include “ScriptingCore.h”,然後使用以下方法:

//引入頭文件
#include "ScriptingCore.h"
//使用
ScriptingCore::getInstance()->executeString("你的代碼");

到了v1.7以後,JS 引擎的管理從 ScriptingCore 被移動到了 se::ScriptEngine 類中。於是變成下面方式:

//引入頭文件
#include "cocos/scripting/js-bindings/manual/ScriptingCore.h"
#include "cocos/scripting/js-bindings/jswrapper/SeApi.h"
//使用
se::ScriptEngine* se = se::ScriptEngine::getInstance();
se->evalString("你的代碼");

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章