折腾了一天 引擎用的3.7.1 工程时用的 -l js 创建的,主体框架是用C++ 写 ,在菜单 Layer 一个按钮 单击 进入 js编写的模块
ScriptingCore* sc = ScriptingCore::getInstance();
sc->runScript(“src/app.js”);
app.js 是 cc.director.pushScene(new aaa.SceneGame());
js 模块返回 是 cc.director.popScene();
重复步骤 1 进入 js 模块 2 退出 返回 C++ Menu
重复4次 就会报错,直接卡死在 红色字体。
ool ScriptingCore::runScript(const char path, JS::HandleObject global, JSContext cx)
{
if (cx == NULL) {
cx = _cx;
}
compileScript(path,global,cx);
JS::RootedScript script(cx, getScript(path));
bool evaluatedOK = false;
if (script) {
JS::RootedValue rval(cx);
JSAutoCompartment ac(cx, global);
evaluatedOK = JS_ExecuteScript(cx, global, script, &rval);
if (false == evaluatedOK) {
cocos2d::log("(evaluatedOK == JS_FALSE)");
JS_ReportPendingException(cx);
}
}
return evaluatedOK;
}