RT,求教cocos creator v1.7 oc和java要怎么调用js代码
Java还是一样。
((Cocos2dxActivity)Cocos2dxActivity.getContext()).runOnGLThread(new Runnable() {
@Override
public void run() {
Cocos2dxJavascriptJavaBridge.evalString("your js code");
}
});
objective-c:
if (std::this_thread::get_id() == Director::getInstance()->getCocos2dThreadId())
{
se::ScriptEngine::getInstance()->evalString("your JS code");
}
else
{
Director::getInstance()->getScheduler()->performFunctionInCocosThread([](){
se::ScriptEngine::getInstance()->evalString("your JS code");
});
}
谢谢!
请问一下 oc里面怎么引用se?
这个。。。我晕,你重命名.m文件为.mm,然后include 对应头文件,不就可以直接用了。。。
ScriptEngine的se怎么引入的啊???研究一天了.不知道怎么弄.不会OC…求帮助
这个问题也没人回答哈
同问:se用不了啊,文件名是.mm的,也用的include
我们全新的项目已经改用Unity,这个Creator的项目因为不同的用户经常不稳定,但还有点收入,还想通过Cocos的方式(升级版本)来修正一下,没想到升级这么麻烦。
最快的方法,在ScriptingCore加上evalString
这个帖一路看下来,都不知道你们说的啥。
请把错误信息贴一下。
你这个cpp/.mm文件是否include了cocos/scripting/js-bindings/jswrapper/SeApi.h 这个文件?
如果是m文件,还需要重命名为.mm。
非常感谢,终于解决问题了,我觉得这个应该写在官方文档里面,不然我们这些小白都不知道怎么解决问题的!
这个应该在cocos2d.h里面包含
这个是cpp基础啊,如果这都要列入文档,那么是否需要把c++语法、stl文档等等都加进我们的文档中?
其实creator中用的引擎源自于cocos2d-x,cocos2d-x总的cocos2d.h 只是包含c++核心模块,不会包含绑定相关的API,因为cpp开发者并不需要脚本绑定的东西。
这块我觉得可以把include SeApi.h 加入文档。
安卓是可以自动导入头文件,IOS不能自动导入,然后我们在不知道路径的情况下很难找到路径,虽然cocos开源,但不是都会去看源码的,我是从来都不看的,现在看来跟我一样不看源码的人不少,所以今天都卡在这个问题上了
是的 我们也是 安卓迷之崩溃有8% ios 3%-5%左右
现在看来不是我一个人的问题了,5%左右的用户经常闪退,莫名其妙的,有时都会怀疑是不是接的SDK有后门.
std::string jsCallStr = cocos2d::StringUtils::format("%s("%s");",funcName.UTF8String, jsonStr.UTF8String);
if (std::this_thread::get_id() == Director::getInstance()->getCocos2dThreadId())
{
bool flag = se::ScriptEngine::getInstance()->evalString(jsCallStr.c_str());
if(!flag) {
NSLog(@“jsCallStr = %s”,jsCallStr.c_str());
}
}
else
{
std::string jsCallStr = “ss(cons);”;
Director::getInstance()->getScheduler()->performFunctionInCocosThread(={
bool flag = se::ScriptEngine::getInstance()->evalString(jsCallStr.c_str());
if(!flag) {
NSLog(@“jsCallStr = %s”,jsCallStr.c_str());
}
});
}
performFunctionInCocosThread([=] 少一个等于号