b7785c9811670fa2bcfd6828ce954052655258dc.png
1.jsb_creator_auto 是 Creator 特有的 C++ 类的自动绑定代码,以保证 native 环境和 web 环境的 API 统一
2.res/import 中的文件均是导入后的 asset 资源,在运行时会被反序列化为游戏中的对象
3.jsb_polyfill.jsc 是在 Cocos2d-JS 基础上扩展 Creator 框架的源码
4.project.jsc 是项目中的 JS 源码
oc与js的互相调用
if (cc.sys.isNative && iOS) {//判断是否是源生平台并且是否是iOS平台
//调用APPController类中的Share方法,并且传递参数
jsb.reflection.callStaticMethod("AppController","jsCallObectCFuncation: parameters:", parameter1, parameter2);
}
Xcode项目中,在xCode项目中的AppController.h中写入静态方法:
#import <UIKit/UIKit.h>
@class RootViewController;
@interface AppController : NSObject <UIApplicationDelegate>
{
}
+(void) jsCallObectCFuncation:(id) parameter1 parameters:(id) parameter2;
@property(nonatomic, readonly) RootViewController* viewController;
@end
+(void) jsCallObectCFuncation:(id) parameter1 parameters:(id) parameter2{
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:nil applicationActivities:nil];
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:activityVC animated:YES completion:nil];
}
oc调用jsoc-js.png
导入
#include "cocos/scripting/js-bindings/jswrapper/SeApi.h"
using namespace cocos2d;
+ (id)ObectCCallJSFuncation:(id)funcationName parameters:(id)parameter
{
std::string strRet = [@"" UTF8String];
std::string jsCallStr = cocos2d::StringUtils::format("testMethod(\"%s\");", strRet.c_str());
se::Value *ret = new se::Value();
se::ScriptEngine::getInstance()->evalString(jsCallStr.c_str() , -1 , ret);
NSLog(@"jsCallStr rtn = %s", ret->toString().c_str());
return nil;
}