cocos creator-FAQ

  1. cc.Component

  2. 生命周期回調

  3. cc.path

  4. cc.loader.loadRes

  5. cc.find('target')的使用?

  6. prefab的使用?

  7. addPersistRootNode

  8. cc.game._sceneInfos

  9. 銷毀節(jié)點

  10. cc.NodePool

  11. cc.random0To1

  12. cc.sys

  13. cc.eventManager.addListener

  14. 如何監(jiān)聽瀏覽器大小的改變

  15. hot-update



<a id='w1'>cc.Component</a>

cc.Component 是所有組件的基類,任何組件都包括如下的常見接口:

  • this.node 該組件所屬的節(jié)點實例

  • this.enabled 是否每幀執(zhí)行該組件的update方法基显,同時也用來控制渲染組件是否顯示

  • update(dt) 作為組件的成員方法萧朝,在組件的enabled屬性為true時连霉,其中的代碼會每幀執(zhí)行

  • onLoad( ) 組件所在節(jié)點進行初始化時(創(chuàng)建之后通過設置父節(jié)點添加到節(jié)點樹)執(zhí)行

  • start( ) 會在該組件第一次update之前執(zhí)行偷崩, 通常用于需要在onLoad初始化完畢后執(zhí)行的邏輯


<a id='w2'>生命周期回調</a>

  • onLoad

在組件所在的場景被載入的時候觸發(fā)箫柳,保證了你可以獲取到場景中的其他節(jié)點袖牙,以及節(jié)點關聯(lián)的資源數(shù)據(jù)朽缎。初始化階段。

  • start

在組件第一次激活前翰守,也就是第一次執(zhí)行update之前觸發(fā)孵奶。通常用于初始化一些中間狀態(tài)的數(shù)據(jù)

  • update

每一幀渲染前更新物體的行為,狀態(tài)和方位

  • lateUpdate

update會在所有動畫更新前執(zhí)行蜡峰, 但如果我們要在動畫更新之后才進行一些額外操作了袁,或者希望在所有組件的update都執(zhí)行完之后才進行其他操作,那需要用到lateUpdate

  • onEnable

當組件的enabled屬性從false變?yōu)?code>true時湿颅,會激活onEnabled回調载绿。

倘若節(jié)點第一次被創(chuàng)建且enabledtrue,則會在onLoad之后肖爵,start之前調用

  • onDisable

當組件enabled屬性從true變?yōu)?code>false時怜珍,會激活onDisabl

  • onDestroy

當組件調用了destroy()胁黑,會在該幀結束被統(tǒng)一回收蚯斯,此時會調用onDestroy回調


<a id='w3'>cc.path</a>

路徑相關

源碼:/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/utils/CCPath.js

  • cc.path.basename('assets/test.png') -> test.png

  • cc.path.dirname('assets/test.png') -> assets


<a id='w4'>cc.loader.loadRes</a>

加載‘a(chǎn)ssets/resources'目錄下的資源

所有需要通過腳本動態(tài)加載的資源帚称,都必須放置在 resources 文件夾或它的子文件夾下鸥印。resources 需要在 assets 文件夾中手工創(chuàng)建妄呕,并且必須位于 assets 的根目錄


<a id='w5'>cc.find('target')的使用?</a>

在Node Tree中查找相應對象傀履,如果找不到則返回null, target大小寫敏感


this.contentPos = cc.find('Canvas/testList').getComponent(cc.ScrollView).getContentPosition();


<a id='w6'>prefab的使用?</a>

```js

    var item = cc.intantiate(prefab)

    this.node.addChild(item)

```

<a id='w7'>cc.game.addPersistRootNode(this.node)</a>

聲明常駐根節(jié)點鸥鹉,該節(jié)點不會被在場景切換中銷毀搀玖。該節(jié)點比較是層級的根節(jié)點余境,否則無效。


<a id='w8'>cc.game._sceneInfos</a>

返回所有assets中Scene的路徑,如:"db://assets/Test.fire"


<a id='w9'>銷毀節(jié)點</a>

通過node.destroy()函數(shù)芳来,可以銷毀節(jié)點含末,但并不會立刻發(fā)生,而是在當前幀邏輯更新結束后統(tǒng)一執(zhí)行即舌。當一個節(jié)點銷毀后佣盒,該節(jié)點就處于無效狀態(tài),可以通過cc.isValid判斷當前節(jié)點是否已經(jīng)被銷毀顽聂。


<a id='w10'> cc.NodePool</a>

定義在engine/extensions/ccpool/CCNodePool.js

用于管理節(jié)點對象的對象緩存池, 需要實例化之后才能使用肥惭,每種不同的節(jié)點對象池需要一個不同的對象池實例,這里的種類對應于游戲中的節(jié)點設計紊搪,一個 prefab 相當于一個種類的節(jié)點蜜葱。

在創(chuàng)建緩沖池時,可以傳入一個包含 unuse, reuse 函數(shù)的組件類型用于節(jié)點的回收和復用邏輯


<a id='w11'>cc.random0To1 && cc.random1To1</a>

定義在engine/cocos2d/core/platform/CCMacro.js

Math.random的宏


<a id='w12'> cc.sys</a>

定義在engine/cocos2d/core/platform/CCSys.js


<a id='w13'> cc.eventManager.addListener</a>

定義在engine/cocos2d/core/event-manager/CCEventManager.js

負責管理自定義事件和輸入事件耀石,如:鼠標牵囤、觸摸、鍵盤滞伟、陀螺儀奔浅。

示例在engine/docs/cocos2d/core/event-manager/CCEventManager/addListener.js

指引在http://www.cocos.com/docs/creator/scripting/player-controls.html


<a id="w14">如何監(jiān)聽瀏覽器大小的改變</a>


cc.view.setResizeCallback(()=>{

    var rect = cc.game.canvas.getBoundingClientRect();

    //rect.left, rect.top, rect.width, rect.height ...

});


<a id='w15'>hot-update</a>

hot update

熱更新思路:

  1. 基于原生打包目錄中的 res 和 src 目錄生成本地 Manifest 文件。

  2. 創(chuàng)建一個熱更新組件來負責熱更新邏輯诗良。

  3. 游戲發(fā)布后汹桦,若需要更新版本,則生成一套遠程版本資源鉴裹,包含 res 目錄舞骆、src 目錄和Manifest 文件,將遠程版本部署到服務端

4.當熱更新組件檢測到服務端 Manifest 版本不一致時径荔,就會開始熱更新

每次build之后都要添加


// 在 main.js 的開頭添加如下代碼

    if (cc.sys.isNative) {

        var hotUpdateSearchPaths = cc.sys.localStorage.getItem('HotUpdateSearchPaths');

        if (hotUpdateSearchPaths) {

            jsb.fileUtils.setSearchPaths(JSON.parse(hotUpdateSearchPaths));

        }

    }


生成manifest文件


$node version_generator.js -v 1.1.6 -u http://192.168.10.8:8080/client/test/hot-update/ -s build/jsb-default/ -d assets/


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末督禽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子总处,更是在濱河造成了極大的恐慌狈惫,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹦马,死亡現(xiàn)場離奇詭異胧谈,居然都是意外死亡,警方通過查閱死者的電腦和手機荸频,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門菱肖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旭从,你說我怎么就攤上這事稳强〕≈伲” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵退疫,是天一觀的道長渠缕。 經(jīng)常有香客問我,道長褒繁,這世上最難降的妖魔是什么亦鳞? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮澜汤,結果婚禮上蚜迅,老公的妹妹穿的比我還像新娘。我一直安慰自己俊抵,他們只是感情好谁不,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著徽诲,像睡著了一般刹帕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谎替,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天偷溺,我揣著相機與錄音,去河邊找鬼钱贯。 笑死挫掏,一個胖子當著我的面吹牛,可吹牛的內容都是我干的秩命。 我是一名探鬼主播尉共,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弃锐!你這毒婦竟也來了袄友?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤霹菊,失蹤者是張志新(化名)和其女友劉穎剧蚣,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旋廷,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鸠按,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了柳洋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片待诅。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖熊镣,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤绪囱,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布测蹲,位于F島的核電站,受9級特大地震影響鬼吵,放射性物質發(fā)生泄漏扣甲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一齿椅、第九天 我趴在偏房一處隱蔽的房頂上張望琉挖。 院中可真熱鬧,春花似錦涣脚、人聲如沸示辈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矾麻。三九已至,卻和暖如春芭梯,著一層夾襖步出監(jiān)牢的瞬間险耀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工玖喘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留甩牺,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓累奈,卻偏偏與公主長得像贬派,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子费尽,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理赠群,服務發(fā)現(xiàn),斷路器旱幼,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 前言 我選擇開發(fā)一個游戲有很多原因查描。我覺得自己是“核心”玩家,過去的大部分時間我都花在玩游戲柏卤,自己制作冬三、閱讀和游戲...
    月影檀香閱讀 11,852評論 1 27
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,789評論 25 707
  • 01 在北京東城區(qū)某個地鐵站附近勾笆,一位環(huán)衛(wèi)大叔正在掃地,這時有兩個瑞典人向他問路桥滨,結果這位滿臉皺紋窝爪、皮膚黝黑弛车、個頭...
    可聞桃杏香閱讀 297評論 0 1
  • 我要嚴肅地吐槽一下我的寫作風格…… 小時候寫作文還算是寫的比較不錯的,然而很久沒有寫過什么東西了蒲每,現(xiàn)在寫出來的纷跛,總...
    紅音羽閱讀 178評論 0 0