CocosCreator編碼貼士:充分使用第三方類庫來增加框架功能

cocosCreator(以下簡稱ccc)是一款功能很強(qiáng)大的框架介蛉,但是功能再強(qiáng)的框架也不可能面面俱到萌庆,總有一些我們想要的功能它沒有提供的,此時就需要去引用一些提供了我們想要功能的第三方類庫進(jìn)來以便快速地實(shí)現(xiàn)我們的編碼需求币旧。
通常情況下我們可以通過ccc提供的“插件腳本”功能來完成第三方類庫的導(dǎo)入(如果不知道如何操作的請移步官方介紹文檔践险。如果你需要發(fā)布游戲到的平臺僅有WEB平臺的話倒還沒什么,如果準(zhǔn)備發(fā)到微信小游戲平臺的話在使用插件腳本的時候請一定加上“window”前綴吹菱,比如:

$.find('.someClass');//原先的使用方式
window.$.find('.someClass');//樓主建議的使用方式

這是因?yàn)樵趙eb平臺捏境,默認(rèn)會在找不到變量聲明的時候去window這個全局變量下進(jìn)一步查找,但是在微信小游戲平臺并沒有原生提供window這個全局變量毁葱,故我們無法直接使用一些掛載在window上的類庫垫言。ccc在發(fā)布到小游戲平臺時會加進(jìn)來一個適配器,名字叫做“weapp-adapter-min.js”倾剿,這個適配器可以讓我們在代碼中訪問到window變量筷频,使用方法和web平臺一樣。雖然如此前痘,但在小游戲環(huán)境下凛捏,在找不到變量聲明時不會默認(rèn)去window這個全局變量下進(jìn)行查找,所以使用原先的芹缔,不加"window"前綴的方式依舊無法訪問到類庫的全局變量坯癣,此時必須通過加"window"前綴的方式才能訪問到。
前面的說法理論上是沒有問題的最欠,但是實(shí)際使用中仍然無法通過window.$這類語句訪問到j(luò)Query或者其他第三方庫的全局變量示罗,此時的問題就出在第三方庫文件本身上面。很多第三方庫文件在將全局變量暴露到全局的實(shí)現(xiàn)代碼上都會盡量兼容多種js代碼加載環(huán)境芝硬,如CMD,AMD等等蚜点。下面是lodash庫在暴露全局變量時的代碼:

// Some AMD build optimizers, like r.js, check for condition patterns like:
  if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
    // Expose Lodash on the global object to prevent errors when Lodash is
    // loaded by a script tag in the presence of an AMD loader.
    // See http://requirejs.org/docs/errors.html#mismatch for more details.
    // Use `_.noConflict` to remove Lodash from the global object.
    root._ = lodash;

    // Define as an anonymous module so, through path mapping, it can be
    // referenced as the "underscore" module.
    define(function() {
      return lodash;
    });
  }
  // Check for `exports` after `define` in case a build optimizer adds it.
  else if (freeModule) {
    // Export for Node.js.
    (freeModule.exports = lodash)._ = lodash;
    // Export for CommonJS support.
    freeExports._ = lodash;
  }
  else {
    // Export to the global object.
    root._ = lodash;
  }

我們看到,在上述代碼中拌阴,全局變量lodash被以下劃線'_'的名字掛載到了root上面绍绘,但這個root到底是什么類型的對象我們其實(shí)并不知道。在小游戲環(huán)境中,因?yàn)橥ㄟ^適配器陪拘,讓我們可以像在web平臺一樣使用window對象厂镇,故我們可以通過明確地把第三方類庫的全局變量掛載到window變量上面來解決此問題。按照這個思路左刽,上述代碼可以改成:

window._ = lodash;

這樣就可以讓我們在web和小游戲雙平臺通過一樣的語句來使用lodash庫了捺信。

網(wǎng)上有很多各種功能的js類庫,但是目前很多好用的類庫只提供了nodejs的加載方式(使用npm安裝然后通過nodejs環(huán)境下提供的require語句進(jìn)行加載)悠反。對于這類庫残黑,要是想在ccc使用的話需要使用browserify工具將其轉(zhuǎn)譯成瀏覽器可用的版本后再作為腳本插件供ccc使用馍佑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斋否,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拭荤,更是在濱河造成了極大的恐慌茵臭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舅世,死亡現(xiàn)場離奇詭異旦委,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)雏亚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門缨硝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人罢低,你說我怎么就攤上這事查辩。” “怎么了网持?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵宜岛,是天一觀的道長。 經(jīng)常有香客問我功舀,道長萍倡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任辟汰,我火速辦了婚禮列敲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帖汞。我一直安慰自己酿炸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布涨冀。 她就那樣靜靜地躺著填硕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扁眯,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天壮莹,我揣著相機(jī)與錄音,去河邊找鬼姻檀。 笑死命满,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绣版。 我是一名探鬼主播胶台,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杂抽!你這毒婦竟也來了诈唬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤缩麸,失蹤者是張志新(化名)和其女友劉穎铸磅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杭朱,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡阅仔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弧械。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片八酒。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖刃唐,靈堂內(nèi)的尸體忽然破棺而出羞迷,到底是詐尸還是另有隱情,我是刑警寧澤唁桩,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布闭树,位于F島的核電站,受9級特大地震影響荒澡,放射性物質(zhì)發(fā)生泄漏倦挂。R本人自食惡果不足惜描焰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一该酗、第九天 我趴在偏房一處隱蔽的房頂上張望悠砚。 院中可真熱鬧,春花似錦米奸、人聲如沸昼接。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慢睡。三九已至逐工,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間漂辐,已是汗流浹背泪喊。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留髓涯,地道東北人袒啼。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像纬纪,于是被迫代替她去往敵國和親蚓再。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫包各、插件摘仅、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,025評論 4 62
  • 嗯哼嗯哼蹦擦擦~~~ 轉(zhuǎn)載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 ...
    philiha閱讀 4,846評論 0 6
  • MY dear monitor: 時光匆匆,轉(zhuǎn)瞬即逝髓棋。轉(zhuǎn)眼間实檀,分別時的初秋早已褪去金黃惶洲,迎來了陣陣凜冽的寒...
    暖鋒閱讀 418評論 0 1
  • 動筆之前按声,把自己以前的QQ說說翻了個遍,試圖找到一點(diǎn)靈感或是一個切入口來開始這里的開始恬吕,結(jié)果發(fā)現(xiàn)都是青春時代的稚嫩...
    滄海一霸閱讀 92評論 1 1