Example #1
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    auto director = Director::getInstance();
    director->setOpenGLView(EGLView::getInstance());

    // turn on display FPS
    //director->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    
    sc->start();
    
    auto scene = Scene::create();
    auto updateLayer = new UpdateLayer();
    scene->addChild(updateLayer);
    updateLayer->release();
    
    director->runWithScene(scene);
    
    return true;
}
Example #2
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
    
    // enable High Resource Mode(2x, such as iphone4) and maintains low resource on other devices.
    // pDirector->enableRetinaDisplay(true);
    
    // turn on display FPS
    pDirector->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);
    
    CCScene * pScene = CCScene::create();
    
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(register_chipmunk_manual);
    sc->addRegisterCallback(register_CCPhysicsSprite);
    
    sc->start();
    
    CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
    ScriptingCore::getInstance()->runScript("js/main.js");
       
    return true;
}
Example #3
0
    bool AppDelegate::applicationDidFinishLaunching()
    {

        initGameView();
        ScriptingCore* sc = ScriptingCore::getInstance();
        sc->addRegisterCallback(register_all_cocos2dx);
        sc->addRegisterCallback(register_all_cocos2dx_extension);
        sc->addRegisterCallback(register_cocos2dx_js_extensions);
        sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
        sc->addRegisterCallback(register_CCBuilderReader);
        sc->addRegisterCallback(jsb_register_system);
        sc->addRegisterCallback(jsb_register_chipmunk);
        sc->addRegisterCallback(JSB_register_opengl);
        sc->addRegisterCallback(register_CocosPlayer);
        sc->start();

        CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
        CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
        if(firstTime) {
            runMainScene();
            firstTime = false;
        } else {
            handle_ccb_run();
        }
    }
Example #4
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
    
    // turn on display FPS
    pDirector->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);
    CCLOG("applicationDidFinishLaunching 01");
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(jsb_register_system);
    sc->addRegisterCallback(JSB_register_opengl);

    sc->addRegisterCallback(register_all_pluginx_protocols);
    sc->addRegisterCallback(register_all_pluginx_umeng);
    sc->addRegisterCallback(register_all_pluginx_flurry);
    sc->addRegisterCallback(register_pluginx_js_extensions);
    sc->start();
    CCLOG("applicationDidFinishLaunching 02");
    CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
    ScriptingCore::getInstance()->runScript("main.js");
       CCLOG("applicationDidFinishLaunching 03");
    return true;
}
void handle_signal(int signal) 
{
	static int internal_state = 0;
	ScriptingCore* sc = ScriptingCore::getInstance();
	// should start everything back
	CCDirector* director = CCDirector::sharedDirector();
	if (director->getRunningScene()) 
	{
		director->popToRootScene();
	} 
	else
	{
		CCPoolManager::sharedPoolManager()->finalize();
		if (internal_state == 0) 
		{
			//sc->dumpRoot(NULL, 0, NULL);
			sc->start();
			internal_state = 1;
		} 
		else
		{
			sc->runScript("hello.js");
			internal_state = 0;
		}
	}
}
Example #6
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());

    // Set the design resolution
    CCEGLView::sharedOpenGLView()->setDesignResolutionSize(320, 480, kResolutionShowAll);

    // turn on display FPS
    pDirector->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);
    
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    
    sc->start();
    
    CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
    ScriptingCore::getInstance()->runScript("js/MoonWarriors-native.js");
    return true;
}
Example #7
0
void CCMyKeypadDelegate::keyBackClicked()
{
    CCLOG("keyBackClicked");

    ScriptingCore* sc = ScriptingCore::getInstance();

    jsval res;
    JS_CallFunctionName(sc->getGlobalContext(), sc->getGlobalObject(), "Key_onBackClicked", 0, NULL, &res);
}
Example #8
0
void TSScriptJS::Init()
{
    ScriptingCore* sc = ScriptingCore::getInstance();
    auto GC = sc->getGlobalContext();
    auto GO = sc->getGlobalObject();
    JS_DefineFunction(GC, GO, "TSLog", TSScriptJS::TS_JSOut, 0, JSPROP_READONLY | JSPROP_PERMANENT);
    JS_DefineFunction(GC, GO, "TSSendBuffer", TSScriptJS::TS_SendBuffer, 0, JSPROP_READONLY | JSPROP_PERMANENT);
    JS_DefineFunction(GC, GO, "TSLocalMsg", TSScriptJS::TS_LocalMsg, 0, JSPROP_READONLY | JSPROP_PERMANENT);
}
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());

    // turn on display FPS
    pDirector->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);

    CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480, 320, kResolutionFixedHeight);

    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(register_CCBuilderReader);
    sc->addRegisterCallback(jsb_register_system);
    sc->addRegisterCallback(JSB_register_opengl);

    sc->start();

    CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
    ScriptingCore::getInstance()->runScript("boot-jsb.js");

    return true;
}
Example #10
0
// this function will be called when the app is active again
void AppDelegate::applicationWillEnterForeground()
{
    CCDirector::sharedDirector()->startAnimation();
    SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
    SimpleAudioEngine::sharedEngine()->resumeAllEffects();

    ScriptingCore* sc = ScriptingCore::getInstance();
    jsval nsval;
    JS_GetProperty(sc->getGlobalContext(), sc->getGlobalObject(), "plugin", &nsval);
    if (nsval != JSVAL_VOID) {
        sc->executeFunctionWithOwner(nsval, "onApplicationWillEnterForeground");
    }
}
Example #11
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    auto pDirector = Director::getInstance();
    pDirector->setOpenGLView(EGLView::getInstance());
    pDirector->setProjection(Director::Projection::_2D);

    auto designSize = Size(960, 640);
    EGLView::getInstance()->setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy::SHOW_ALL);

    // turn on display FPS
    pDirector->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);

    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
    sc->addRegisterCallback(jsb_register_system);
    sc->addRegisterCallback(JSB_register_opengl);

    sc->addRegisterCallback(register_all_pluginx_protocols);
    sc->addRegisterCallback(register_pluginx_js_extensions);
    sc->start();

    ScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    ScriptEngineManager::getInstance()->setScriptEngine(pEngine);
    ScriptingCore::getInstance()->runScript("main.js");

    return true;
}
bool AppDelegate::applicationDidFinishLaunching()
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    sdkbox::init("68ba9af98d6f860b716fea6ef1a014a1", "4b488fa2d50b35af");
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    sdkbox::init("32e4e540cd14b5d2a536ad99493873b6", "c80ea05e3d8d1917", "googleplay");
#endif
    
    // initialize director
    auto director = Director::getInstance();

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

#if (COCOS2D_DEBUG > 0) && (CC_CODE_IDE_DEBUG_SUPPORT > 0)

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    // for getIPAddress
    extern void setActivityPathForAndroid(const std::string &path);
    setActivityPathForAndroid("org/cocos2dx/javascript/AppActivity");
#endif

    auto runtimeEngine = RuntimeEngine::getInstance();
    auto jsRuntime = RuntimeJsImpl::create();
    runtimeEngine->addRuntime(jsRuntime, kRuntimeEngineJs);
    runtimeEngine->start();
    
    // js need special debug port
    if (runtimeEngine->getProjectConfig().getDebuggerType() != kCCRuntimeDebuggerNone)
    {
        jsRuntime->startWithDebugger();
    }
#else
   js_module_register();
    ScriptingCore* sc = ScriptingCore::getInstance();
#ifdef SDKBOX_ENABLED
    sc->addRegisterCallback(register_all_PluginIAPJS);
    sc->addRegisterCallback(register_all_PluginIAPJS_helper);
#endif
   sc->start();
   sc->runScript("script/jsb_boot.js");
   ScriptEngineProtocol *engine = ScriptingCore::getInstance();
   ScriptEngineManager::getInstance()->setScriptEngine(engine);
   ScriptingCore::getInstance()->runScript("main.js");
#endif

    return true;
}
void c_addLogToCLI(int logType, const char * pszFormat, ...)
{
    ScriptingCore* sc = ScriptingCore::getInstance();
    if (sc) {
        char szBuf[kMaxLogLen+1] = {0};
        va_list ap;
        va_start(ap, pszFormat);
        vsnprintf(szBuf, kMaxLogLen, pszFormat, ap);
        va_end(ap);
        
        jsval args[2];
        args[0] = c_string_to_jsval(sc->getGlobalContext(), szBuf);
        args[1] = INT_TO_JSVAL(logType);
        sc->executeFunctionWithOwner(g_cliJSValue, "addLog", 2, args, NULL);
    }
}
Example #14
0
jsval CharacterNetwork::getNetworkObjectById(const char* id)
{
    jsval networkObjects = CharacterNetwork::getNetworkObjects();
    ScriptingCore *sc = ScriptingCore::getInstance();
    JSContext *cx = sc->getGlobalContext();
    
    if(networkObjects != JSVAL_VOID)
    {
        jsval jsCharacterNetwork;
        JS_GetProperty(cx, &networkObjects.toObject(), id, &jsCharacterNetwork);
        if (jsCharacterNetwork == JSVAL_VOID)
            printf("can't get property %s from ls.NetworkObjects\n", id);
        else
            return jsCharacterNetwork;
    }
    return JSVAL_VOID;
}
Example #15
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    Director *director = Director::getInstance();
    director->setOpenGLView(EGLView::getInstance());
    
    // turn on display FPS
    director->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);
    
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(JSB_register_opengl);
    sc->addRegisterCallback(jsb_register_system);
    sc->start();
    
    ScriptEngineProtocol *engine = ScriptingCore::getInstance();
    ScriptEngineManager::getInstance()->setScriptEngine(engine);
    ScriptingCore::getInstance()->runScript("cocos2d-jsb.js");
       
    return true;
}
Example #16
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
    pDirector->setProjection(kCCDirectorProjection2D);


    CCSize screenSize = CCEGLView::sharedOpenGLView()->getFrameSize();

    CCSize designSize = CCSizeMake(320, 480);
    CCSize resourceSize = CCSizeMake(320, 480);
    
    if (screenSize.height > 1024)
    {
        resourceSize = CCSizeMake(1536, 2048);
        CCFileUtils::sharedFileUtils()->setResourceDirectory("resources-ipadhd");
    }
     else if (screenSize.height > 960)
    {
        resourceSize = CCSizeMake(768, 1536);
        CCFileUtils::sharedFileUtils()->setResourceDirectory("resources-ipad");
    }
    else if (screenSize.height > 480)
    {
        resourceSize = CCSizeMake(640, 960);
        CCFileUtils::sharedFileUtils()->setResourceDirectory("resources-iphonehd");
        
    }
    else
    {
        CCFileUtils::sharedFileUtils()->setResourceDirectory("resources-iphone");
    }
    
    pDirector->setContentScaleFactor(resourceSize.height/designSize.height);

    CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionNoBorder);
    
    // turn on display FPS
    pDirector->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);
    
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(register_CCBuilderReader);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(jsb_register_system);
    
    sc->start();

    js_log("RUNNING Main");
    CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
    ScriptingCore::getInstance()->runScript("main.js");
       
    return true;
}
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    auto director = Director::getInstance();

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

#if (COCOS2D_DEBUG > 0) && (CC_CODE_IDE_DEBUG_SUPPORT > 0)

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    // for getIPAddress
    extern void setActivityPathForAndroid(const std::string &path);
    setActivityPathForAndroid("org/cocos2dx/javascript/AppActivity");
#endif

    auto runtimeEngine = RuntimeEngine::getInstance();
    auto jsRuntime = RuntimeJsImpl::create();
    runtimeEngine->addRuntime(jsRuntime, kRuntimeEngineJs);
    runtimeEngine->start();
    
    // js need special debug port
    if (runtimeEngine->getProjectConfig().getDebuggerType() != kCCRuntimeDebuggerNone)
    {
        jsRuntime->startWithDebugger();
    }
#else
    js_module_register();
    ScriptingCore* sc = ScriptingCore::getInstance();
#ifdef SDKBOX_ENABLED
    sc->addRegisterCallback(register_all_PluginAgeCheqJS);
    sc->addRegisterCallback(register_all_PluginAgeCheqJS_helper);
#endif
    sc->start();
    sc->runScript("script/jsb_boot.js");
#if defined(COCOS2D_DEBUG) && (COCOS2D_DEBUG > 0)
//    sc->enableDebugger();
#endif
    ScriptEngineProtocol *engine = ScriptingCore::getInstance();
    ScriptEngineManager::getInstance()->setScriptEngine(engine);
    ScriptingCore::getInstance()->runScript("main.js");
#endif

    return true;
}
Example #18
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
    pDirector->setProjection(kCCDirectorProjection2D);

    // Set the design resolution
    CCEGLView::sharedOpenGLView()->setDesignResolutionSize(320, 480, kResolutionShowAll);

    // turn on display FPS
    pDirector->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);
    
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(register_CCBuilderReader);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(jsb_register_system);
    sc->start();
    
    CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
#if JSB_ENABLE_DEBUGGER
    ScriptingCore::getInstance()->enableDebugger();
    ScriptingCore::getInstance()->runScript("main.debug.js");
#else
    ScriptingCore::getInstance()->runScript("MoonWarriors-jsb.js");
#endif

    return true;
}
Example #19
0
jsval TSScriptJS::JSCallFuncName(const char *name, int count, ...)
{
    ScriptingCore* sc = ScriptingCore::getInstance();
    int argc = count;
    jsval res;
    jsval *argv = new jsval[count];
    va_list insvalist;
    va_start(insvalist,count);
    for (int i = 0; i < count; ++i)
    {    
	    const char* _str =va_arg(insvalist,const char *);
		std::string sttr=std::string("")+_str;
        argv[i] = std_string_to_jsval(sc->getGlobalContext(),sttr);
    }
    va_end(insvalist) ;
    JS_CallFunctionName(sc->getGlobalContext(), sc->getGlobalObject(), name, argc, argv, &res);
    delete [] argv;
    return res ;
}
    //Call Javascript function.
    void SendMessageToJS(const char* jsMethodName,CCObject* cobj){
        
        ScriptingCore* sc = ScriptingCore::getInstance();
        JSContext *cx = sc->getGlobalContext();
        
        const char *methodParams = NULL;
        string jsonStr("");
        
        if(cobj){
//            CCLog("into have cobj");
           
            json_t *jsonParams = NDKHelper::GetJsonFromCCObject(cobj);
            jsonStr = json_dumps(jsonParams, JSON_COMPACT | JSON_ENSURE_ASCII);
            methodParams = jsonStr.c_str();

        }

//        CCLOG("methodParams in SendMessageToJS: %s",methodParams);
        if (jsJSBHelperObject == NULL)
            jsJSBHelperObject = JSVAL_TO_OBJECT(anonEvaluate(cx, sc->getGlobalObject(), "(function () { return JSBHelper; })()"));
        
        if (methodParams)
        {
//            CCLog("into methodParams = 2");
            jsval argv[2];
            argv[0] = c_string_to_jsval(cx,jsMethodName);
            argv[1] = c_string_to_jsval(cx,methodParams);
            
            jsval res;
            JS_CallFunctionName(cx, jsJSBHelperObject, "GetMessageFromCpp", 2, argv, &res);
        }
        else
        {
//                        CCLog("into methodParams = 1");
            jsval argv[1];
            argv[0] = c_string_to_jsval(cx,jsMethodName);
            
            jsval res;
            JS_CallFunctionName(cx, jsJSBHelperObject, "GetMessageFromCpp", 1, argv, &res);
        }
        
    }
Example #21
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    auto pDirector = Director::getInstance();
    pDirector->setOpenGLView(EGLView::getInstance());
    pDirector->setProjection(Director::Projection::_2D);

    // Set the design resolution
    EGLView::getInstance()->setDesignResolutionSize(320, 480, ResolutionPolicy::SHOW_ALL);

    // turn on display FPS
    pDirector->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);
    
    FileUtils::getInstance()->addSearchPath("script");
    
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
    sc->addRegisterCallback(register_all_cocos2dx_builder);
    sc->addRegisterCallback(register_CCBuilderReader);
    sc->addRegisterCallback(jsb_register_system);
    sc->addRegisterCallback(JSB_register_opengl);
    
    sc->start();
    
#if defined(COCOS2D_DEBUG) && (COCOS2D_DEBUG > 0)
    sc->enableDebugger();
#endif
    
    auto pEngine = ScriptingCore::getInstance();
    ScriptEngineManager::getInstance()->setScriptEngine(pEngine);

    ScriptingCore::getInstance()->runScript("MoonWarriors-jsb.js");

    return true;
}
ComponentJS::ComponentJS(const std::string& scriptFileName)
: _scriptFileName(scriptFileName)
, _jsObj(nullptr)
{
    ScriptingCore* engine = ScriptingCore::getInstance();
    JSContext* cx = engine->getGlobalContext();
    // Require script
    JS::RootedValue classValue(cx);
    _succeedLoadingScript = engine->requireScript(_scriptFileName.c_str(), &classValue);

    if (_succeedLoadingScript)
    {
        JS::RootedObject classObj(cx, classValue.toObjectOrNull());
        const JSClass* theClass = JS_GetClass(classObj);
        JS::RootedValue protoValue(cx);
        JS_GetProperty(cx, classObj, "prototype", &protoValue);

        TypeTest<ComponentJS> t;
        js_type_class_t *typeClass = nullptr;
        std::string typeName = t.s_name();
        auto typeMapIter = _js_global_type_map.find(typeName);
        CCASSERT(typeMapIter != _js_global_type_map.end(), "Can't find the class type!");
        typeClass = typeMapIter->second;

        mozilla::Maybe<JS::PersistentRootedObject> *jsObj = new (std::nothrow) mozilla::Maybe<JS::PersistentRootedObject>();

        JS::RootedObject proto(cx, protoValue.toObjectOrNull());
        JS::RootedObject parent(cx, typeClass->proto.ref());
        jsObj->construct(cx);
        JS::RootedObject obj(cx, JS_NewObject(cx, theClass, proto, parent));
        jsObj->ref() = obj;

        // Unbind current proxy binding
        js_proxy_t* jsproxy = js_get_or_create_proxy<ComponentJS>(cx, this);
        JS::RemoveObjectRoot(cx, &jsproxy->obj);
        jsb_remove_proxy(jsproxy);
        // link the native object with the javascript object
        jsb_new_proxy(this, jsObj->ref());

        _jsObj = jsObj;
    }
}
Example #23
0
ComponentJS::ComponentJS(const std::string& scriptFileName)
: _scriptFileName(scriptFileName)
, _jsObj(nullptr)
{
    ScriptingCore* engine = ScriptingCore::getInstance();
    JSContext* cx = engine->getGlobalContext();
    // Require script
    JS::RootedValue classValue(cx);
    _succeedLoadingScript = engine->requireScript(_scriptFileName.c_str(), &classValue);
    
    if (_succeedLoadingScript)
    {
        JS::RootedObject classObj(cx, classValue.toObjectOrNull());
        const JSClass* theClass = JS_GetClass(classObj);
        JS::RootedValue protoValue(cx);
        JS_GetProperty(cx, classObj, "prototype", &protoValue);
        
        mozilla::Maybe<JS::PersistentRootedObject> *jsObj = new (std::nothrow) mozilla::Maybe<JS::PersistentRootedObject>();
        
        js_type_class_t *typeClass = js_get_type_from_native<cocos2d::ComponentJS>(this);
        JS::RootedObject proto(cx, protoValue.toObjectOrNull());
        JS::RootedObject parent(cx, typeClass->proto.ref());
        jsObj->construct(cx);
        JS::RootedObject obj(cx, JS_NewObject(cx, theClass, proto, parent));
        jsObj->ref() = obj;
        
        // Unbind current proxy binding
        js_proxy_t* nproxy = jsb_get_native_proxy(this);
        if (nproxy)
        {
#if CC_ENABLE_GC_FOR_NATIVE_OBJECTS
            JS::RemoveObjectRoot(cx, &nproxy->obj);
#endif // CC_ENABLE_GC_FOR_NATIVE_OBJECTS
            jsb_remove_proxy(nproxy, jsb_get_js_proxy(nproxy->obj));
        }
        // link the native object with the javascript object
        jsb_new_proxy(this, jsObj->ref());
        
        _jsObj = jsObj;
    }
}
Example #24
0
bool AppDelegate::applicationDidFinishLaunching()
{
    
    // initialize director
    CCDirector *pDirector = CCDirector::sharedDirector();
    pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());

    // turn on display FPS
    pDirector->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);

    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(JSB_register_opengl);
    sc->addRegisterCallback(jsb_register_system);
    sc->addRegisterCallback(MinXmlHttpRequest::_js_register);
    sc->addRegisterCallback(register_jsb_websocket);
    sc->addRegisterCallback(registerDeviceSpeceficTests);
    sc->start();

    CCScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    CCScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
#ifdef JS_OBFUSCATED
    ScriptingCore::getInstance()->runScript("game.js");
#else
#if JSB_ENABLE_DEBUGGER
    ScriptingCore::getInstance()->enableDebugger();
#endif // JSB_ENABLE_DEBUGGER
    ScriptingCore::getInstance()->runScript("tests-boot-jsb.js");
#endif

    return true;
}
Example #25
0
void startRuntime()
{
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_FileUtils);
    sc->start();
    sc->runScript("script/jsb_boot.js");

    int debugPort = 5086; 
#if(CC_PLATFORM_MAC == CC_TARGET_PLATFORM || CC_PLATFORM_WIN32 == CC_TARGET_PLATFORM)
        debugPort = ConfigParser::getInstance()->getDebugPort();
#endif
    sc->enableDebugger(debugPort);
    ScriptEngineProtocol *engine = ScriptingCore::getInstance();
    ScriptEngineManager::getInstance()->setScriptEngine(engine);

    auto scene = Scene::create();
    auto connectLayer = new ConnectWaitLayer();
    connectLayer->autorelease();
    auto director = Director::getInstance();
    scene->addChild(connectLayer);
    director->runWithScene(scene);
}
void FacebookInterface::callbackJs(int cbIndex, const char* params)
{
    CCLOG("111");
	ScriptingCore* sc = ScriptingCore::getInstance();
	JSContext *cx = sc->getGlobalContext();
	
	if (fbObject == NULL)
		fbObject = JSVAL_TO_OBJECT(anonEvaluate(cx, sc->getGlobalObject(), "(function () { return FB; })()"));
	
	jsval res;
    if (fbObject) {
        CCLOG("SDFSD");
    }
	
    CCLOG("222");
	if (params != NULL)
	{
		jsval argv[2];
		argv[0] = INT_TO_JSVAL(cbIndex);
		std::string tstr = params;
		argv[1] = std_string_to_jsval(cx,tstr);
        JS_AddValueRoot(cx, argv);
        CCLOG("333, %s", tstr.c_str());
		JS_CallFunctionName(cx, fbObject, "callback", 2, argv, &res);
        CCLOG("call fb,");
        JS_RemoveValueRoot(cx, argv);
	}
	else
	{
        CCLOG("444");
		jsval argv[1];
		argv[0] = INT_TO_JSVAL(cbIndex);
        
		JS_CallFunctionName(cx, fbObject, "callback", 1, argv, &res);
	}
    CCLOG("555");
}
Example #27
0
void TSScriptJS::GetWebConfig(std::string& Adapter_Ip, int& Adapter_Port) 
{
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->runScript("Config/Config.js");
    JSObject* pObj;    	
	jsval obj;
    JS_GetProperty(sc->getGlobalContext(),sc->getGlobalObject(),"IP", &obj); 
    JS_ValueToObject(sc->getGlobalContext(),obj,&pObj);
    jsval AdaptServerIP;  
    JS_GetProperty(sc->getGlobalContext(),pObj,"AdaptServerIP", &AdaptServerIP);  
    JSString* pS = JS_ValueToString(sc->getGlobalContext(), AdaptServerIP);  
    JSStringWrapper pW(pS);  
	Adapter_Ip = pW.get().c_str();
    TSLog("AdapteServer Ip = %s", pW.get().c_str()); 
    jsval ip_port;  
    JS_GetProperty(sc->getGlobalContext(),pObj,"AdaptServerPort", &ip_port);  
    JSString* pS_port = JS_ValueToString(sc->getGlobalContext(), ip_port);  
    JSStringWrapper pWs(pS_port); 
    Adapter_Port = atoi(pWs.get().c_str());	
    TSLog("AdapteServer Port = %s",pWs.get().c_str());
}
Example #28
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    Director *director = Director::getInstance();
    director->setOpenGLView(EGLView::getInstance());
    
    // turn on display FPS
    director->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);
    
    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(JSB_register_opengl);
    sc->addRegisterCallback(jsb_register_system);
    sc->addRegisterCallback(register_mask_all);
    sc->start();
    
    ScriptEngineProtocol *engine = ScriptingCore::getInstance();
    ScriptEngineManager::getInstance()->setScriptEngine(engine);
    ScriptingCore::getInstance()->runScript("cocos2d-jsb.js");

    cocos2d::plugin::TAdsDeveloperInfo devInfo;
    devInfo["AdmobID"] = "a1530e0a2793b0f"; /*my id*/
    cocos2d::plugin::ProtocolAds* admob =  dynamic_cast<cocos2d::plugin::ProtocolAds*>(cocos2d::plugin::PluginManager::getInstance()->loadPlugin("AdsAdmob"));
    cocos2d::plugin::AdsListener* listener = new MyAdsListener();
    cocos2d::plugin::ProtocolAds::AdsPos posAdmob = cocos2d::plugin::ProtocolAds::kPosTopLeft;
    cocos2d::plugin::TAdsInfo adInfo;
    admob->configDeveloperInfo(devInfo);
    admob->setAdsListener(listener);
    admob->setDebugMode(false);
    adInfo["AdmobType"] = "1";
    adInfo["AdmobSizeEnum"] = "1";
    admob->showAds(adInfo, posAdmob);

    return true;
}
Example #29
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    Director *pDirector = Director::sharedDirector();
    pDirector->setOpenGLView(EGLView::sharedOpenGLView());

    // JS-Test in Html5 uses 800x450 as design resolution
    EGLView::sharedOpenGLView()->setDesignResolutionSize(800, 450, kResolutionFixedHeight);
    // turn on display FPS
    pDirector->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);

    ScriptingCore* sc = ScriptingCore::getInstance();
    sc->addRegisterCallback(register_all_cocos2dx);
    sc->addRegisterCallback(register_all_cocos2dx_extension);
    sc->addRegisterCallback(register_cocos2dx_js_extensions);
    sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
    sc->addRegisterCallback(jsb_register_chipmunk);
    sc->addRegisterCallback(JSB_register_opengl);
    sc->addRegisterCallback(jsb_register_system);
    sc->addRegisterCallback(MinXmlHttpRequest::_js_register);
    sc->addRegisterCallback(register_jsb_websocket);

    sc->start();

    ScriptEngineProtocol *pEngine = ScriptingCore::getInstance();
    ScriptEngineManager::sharedManager()->setScriptEngine(pEngine);
#ifdef JS_OBFUSCATED
    ScriptingCore::getInstance()->runScript("game.js");
#else
    ScriptingCore::getInstance()->runScript("tests-boot-jsb.js");
#endif
    return true;
}
Example #30
0
bool AppDelegate::applicationDidFinishLaunching()
{
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
#if(CC_TARGET_PLATFORM == CC_PLATFORM_WP8) || (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
        glview = cocos2d::GLViewImpl::create("hello_world");
#else
        glview = cocos2d::GLViewImpl::createWithRect("hello_world", Rect(0,0,900,640));
#endif
        director->setOpenGLView(glview);
    }
    
    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);
    
    js_module_register();
    
    ScriptingCore* sc = ScriptingCore::getInstance();
#ifdef SDKBOX_ENABLED
    sc->addRegisterCallback(register_all_PluginIAPJS);
    sc->addRegisterCallback(register_all_PluginIAPJS_helper);
    sc->addRegisterCallback(register_all_PluginFacebookJS);
    sc->addRegisterCallback(register_all_PluginFacebookJS_helper);
#endif
    sc->start();
    sc->runScript("script/jsb_boot.js");
#if defined(COCOS2D_DEBUG) && (COCOS2D_DEBUG > 0)
    sc->enableDebugger();
#endif
    ScriptEngineManager::getInstance()->setScriptEngine(sc);
    ScriptingCore::getInstance()->runScript("main.js");
    
    return true;
}