Cocos Creator 生命週期回調(官方文檔摘錄)

Cocos Creator 爲組件腳本提供了生命週期的回調函數。用戶經過定義特定的函數回調在特定的時期編寫相關 腳本。目前提供給用戶的聲明週期回調函數有:node

  • onLoad
  • start
  • update
  • lateUpdate
  • onDestroy
  • onEnable
  • onDisable

onLoad

組件腳本的初始化階段,咱們提供了 onLoad 回調函數。onLoad 回調會在這個組件所在的場景被載入 的時候觸發,在 onLoad 階段,保證了你能夠獲取到場景中的其餘節點,以及節點關聯的資源數據。一般 咱們會在 onLoad階段去作一些初始化相關的操做。例如:函數

  1.  
    cc.Class({
  2.  
    extends: cc.Component,
  3.  
     
  4.  
    properties: {
  5.  
    bulletSprite: cc.SpriteFrame,
  6.  
    gun: cc.Node,
  7.  
    },
  8.  
     
  9.  
    onLoad: function () {
  10.  
    this._bulletRect = this.bulletSprite.getRect();
  11.  
    this.gun = cc.find('hand/weapon', this.node);
  12.  
    },
  13.  
    });

start

start 回調函數會在組件第一次激活前,也就是第一次執行 update 以前觸發。start 一般用於 初始化一些中間狀態的數據,這些數據可能在 update 時會發生改變,而且被頻繁的 enable 和 disable。動畫

  1.  
    cc.Class({
  2.  
    extends: cc.Component,
  3.  
     
  4.  
    start: function () {
  5.  
    this._timer = 0.0;
  6.  
    },
  7.  
     
  8.  
    update: function (dt) {
  9.  
    this._timer += dt;
  10.  
    if ( this._timer >= 10.0 ) {
  11.  
    console.log('I am done!');
  12.  
    this.enabled = false;
  13.  
    }
  14.  
    },
  15.  
    });

update

遊戲開發的一個關鍵點是在每一幀渲染前更新物體的行爲,狀態和方位。這些更新操做一般都放在 update 回調中。ui

  1.  
    cc.Class({
  2.  
    extends: cc.Component,
  3.  
     
  4.  
    update: function (dt) {
  5.  
    this.node.setPosition( 0.0, 40.0 * dt );
  6.  
    }
  7.  
    });

lateUpdate

update 會在全部動畫更新前執行,但若是咱們要在動畫更新以後才進行一些額外操做,或者但願在全部組件的 update 都執行完以後才進行其它操做,那就須要用到 lateUpdate 回調。this

  1.  
    cc.Class({
  2.  
    extends: cc.Component,
  3.  
     
  4.  
    lateUpdate: function (dt) {
  5.  
    this.node.rotation = 20;
  6.  
    }
  7.  
    });

onEnable

當組件的 enabled 屬性從 false 變爲 true 時,會激活 onEnable 回調。假若節點第一次被 建立且 enabled 爲 true,則會在 onLoad 以後,start 以前被調用。spa

onDisable

當組件的 enabled 屬性從 true 變爲 false 時,會激活 onDisable 回調。code

onDestroy

當組件調用了 destroy(),會在該幀結束被統一回收,此時會調用 onDestroy 回調。生命週期

相關文章
相關標籤/搜索