OC和coco2d JS相互調(diào)用

大家好,我是一個小小的屌絲程序猿微姊,平時喜歡玩玩游戲,那我們的第一講就從游戲開始吧分预!

首先看標題這個和coco2d有關兢交,有點人就開始激動了。

NO1 我們先建一個coco2d js的項目? 我們用官方推薦cocos creator創(chuàng)建

NO2 我們先在OC里寫一個彈出框

+(BOOL)zyPoUpTitle:(NSString *) title andContent:(NSString *)content{

[RKAlertView showAlertWithTitle:title message:content cancelTitle:@"取消" confirmTitle:@"確認" confrimBlock:^(UIAlertView *alertView) {

NSLog(@"確認了");

[self showViewController:nil];

} cancelBlock:^{

NSLog(@"取消了");

}];

return true;

}

然后我們在js里寫調(diào)用的方法

cc.find("Canvas/zyc").on(cc.Node.EventType.TOUCH_START, function (event) {

cc.log("zykkkkk");

var ret = jsb.reflection.callStaticMethod("zyGameTools",

"zyPoUpTitle:andContent:",

"OC和coco2d js相互調(diào)用",

"孩子準備好了嗎笼痹?讓我們嗨起來配喳!");

Canvas/zyc是場景里面的按鈕 ?上面的代碼是按鈕的點擊事件

jsb.reflection.callStaticMethod 就是我們來實現(xiàn)調(diào)用OC的關鍵代碼

zyGameTools是類名? zyPoUpTitle:andContent:是類方法名(注意有參數(shù)一定不要忘記:)

"OC和coco2d js相互調(diào)用",

"孩子準備好了嗎?讓我們嗨起來凳干!"都是參數(shù)用,分割 ?函數(shù)沒有參數(shù)可以不帶

NO3 話不多說我們來試試


我們成功了晴裹,哈哈,自己給自己個掌聲

NO4我們來實現(xiàn)用OC調(diào)用JS方法

首先我們還是先寫一個js方法

onOC: function(cmd) {

this.label.string = cmd;

}

然后我們這樣用OC調(diào)用

注意:1.下面的方法要寫在.mm文件里 如zyGameTools.mm

? ? ? ? ? ? 2.導入相應的依賴庫 ??

? ? ? ? ? ? ? ? ? ? ?#include "cocos2d.h"

? ? ? ? ? ? ? ? ? ? ?#include "cocos/scripting/js-bindings/jswrapper/SeApi.h"

+(void)zyJsBackFind:(NSString *) find JS:(NSString *)js Func:(NSString*) func withParam:(NSString*) param{

NSString *zyroot = [NSString stringWithFormat:@"cc.find('%@').getComponent('%@').%@('%@');",find,js,func,param];

std::string param001 = [zyroot UTF8String];

std::string jsCallStr = cocos2d::StringUtils::format("%s", param001.c_str());

se::ScriptEngine::getInstance()->evalString(jsCallStr.c_str());

}

這是我自己封裝的方法

/**

OC 調(diào)用coco2d js

@param find 場景名字

@param js js類名

@param func 方法名

@param param 方法參數(shù)(返回字符串? 如果有多個參數(shù)用救赐,分割如:name,city,headimgurl)

*/

好了我們來調(diào)用吧

[self zyJsBackFind:@"Canvas" JS:@"HelloWorld" Func:@"onOC" withParam:resp.name];? ? resp.name是微信登錄后返回的用戶名 你們可以改成你們想返回的參數(shù)內(nèi)容


NO5 OC回調(diào)的方法必須在主線程執(zhí)行

如何我我們在非主線程執(zhí)行

[zyGameTools zyJsBackFind:@"Canvas" JS:@"HelloWorld" Func:@"onOC2" withParam:@"我回來了"];

會報錯

沒有在主線程報錯

我們必須保證在主線程執(zhí)行

dispatch_async(dispatch_get_main_queue(), ^{

[zyGameTools zyJsBackFind:@"Canvas" JS:@"HelloWorld" Func:@"onOC2" withParam:@"我回來了"];

});

這就沒有問題了

NO6我們總的來測試一下



最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涧团,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子经磅,更是在濱河造成了極大的恐慌泌绣,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件预厌,死亡現(xiàn)場離奇詭異阿迈,居然都是意外死亡,警方通過查閱死者的電腦和手機配乓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門仿滔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惠毁,“玉大人,你說我怎么就攤上這事崎页【洗拢” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵飒焦,是天一觀的道長蜈膨。 經(jīng)常有香客問我,道長牺荠,這世上最難降的妖魔是什么翁巍? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮休雌,結(jié)果婚禮上灶壶,老公的妹妹穿的比我還像新娘。我一直安慰自己杈曲,他們只是感情好驰凛,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著担扑,像睡著了一般恰响。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涌献,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天胚宦,我揣著相機與錄音,去河邊找鬼燕垃。 笑死枢劝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的利术。 我是一名探鬼主播呈野,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼印叁!你這毒婦竟也來了被冒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤轮蜕,失蹤者是張志新(化名)和其女友劉穎昨悼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跃洛,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡率触,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了汇竭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葱蝗。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡穴张,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出两曼,到底是詐尸還是另有隱情皂甘,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布悼凑,位于F島的核電站偿枕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏户辫。R本人自食惡果不足惜渐夸,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渔欢。 院中可真熱鬧墓塌,春花似錦、人聲如沸奥额。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽披坏。三九已至,卻和暖如春盐数,著一層夾襖步出監(jiān)牢的瞬間棒拂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工玫氢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留帚屉,地道東北人。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓漾峡,卻偏偏與公主長得像攻旦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子生逸,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容

  • OC調(diào)用JS 首先我們創(chuàng)建一個WebView,加載一個本地的HTML文件 在webview加載完成時-(void)...
    45b645c5912e閱讀 1,110評論 2 5
  • 蘋果公布了JavaScriptCore.framework 它使得JS與OC的交互更加方便了牢屋。 一、iOS調(diào)用js...
    1d5cb7cff98d閱讀 1,120評論 0 0
  • 1槽袄、隨機數(shù) 不需要隨機數(shù)種子 arc4random()%N + begin:產(chǎn)生begin~begin+N的隨機數(shù)...
    我是小胡胡123閱讀 4,161評論 0 2
  • 前言 在iOS開發(fā)過程中烙无,一般會有遇到需要和UIWebView交互的需求,即native端和網(wǎng)頁端的數(shù)據(jù)交互遍尺,因為...
    wuwy閱讀 911評論 0 2
  • 瀑布的水逆流而上截酷,蒲公英種子從遠處飄回,聚成傘的模樣乾戏,太陽從西邊升起迂苛,落向東方三热。子彈退回槍膛,運動員回到起跑線上三幻,...
    宋浩然閱讀 98評論 0 1