Cocos Creator基礎(二)

Director 類型

cc.director 一個管理你的遊戲的邏輯流程的單例對象。
由於 cc.director 是一個單例,你不需要調用任何構造函數或創建函數,
使用它的標準方法是通過調用:
- cc.director.methodName();
它創建和處理主窗口並且管理什麼時候執行場景。

Scheduler 類型

Scheduler 是負責觸發回調函數的類。
通常情況下,建議使用 cc.director.getScheduler() 來獲取系統定時器。
有兩種不同類型的定時器:

- update 定時器:每一幀都會觸發。您可以自定義優先級。<br/>
- 自定義定時器:自定義定時器可以每一幀或者自定義的時間間隔觸發。<br/>

schedule

指定回調函數,調用對象等信息來添加一個新的定時器。
如果 paused 值爲 true,那麼直到 resume 被調用纔開始計時。
當時間間隔達到指定值時,設置的回調函數將會被調用。
如果 interval 值爲 0,那麼回調函數每一幀都會被調用,但如果是這樣, 建議使用 scheduleUpdateForTarget 代替。
如果回調函數已經被定時器使用,那麼只會更新之前定時器的時間間隔參數,不會設置新的定時器。
repeat 值可以讓定時器觸發 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER 可以讓定時器一直循環觸發。
delay 值指定延遲時間,定時器會在延遲指定的時間之後開始計時。

BlockInputEvents 組件參考

BlockInputEvents 組件將攔截所屬節點 bounding box 內的所有輸入事件(鼠標和觸摸),防止輸入穿透到下層節點,一般用於上層 UI 的背景。

激活/關閉節點

節點默認是激活的,我們可以在代碼中設置它的激活狀態,方法是設置節點的 active 屬性:

this.node.active = false;

設置 active 屬性和在編輯器中切換節點的激活、關閉狀態,效果是一樣的。當一個節點是關閉狀態時,它的所有組件都將被禁用。同時,它所有子節點,以及子節點上的組件也會跟着被禁用。要注意的是,子節點被禁用時,並不會改變它們的 active 屬性,因此當父節點重新激活的時候它們就會回到原來的狀態。

也就是說,active 表示的其實是該節點 自身的 激活狀態,而這個節點 當前 是否可被激活則取決於它的父節點。並且如果它不在當前場景中,它也無法被激活。我們可以通過節點上的只讀屬性 activeInHierarchy 來判斷它當前是否已經激活。

this.node.active = true;

若節點原先就處於 可被激活 狀態,修改 active 爲 true 就會立即觸發激活操作:

  • 在場景中重新激活該節點和節點下所有 active 爲 true 的子節點
  • 該節點和所有子節點上的所有組件都會被啓用,他們中的 update 方法之後每幀會執行
  • 這些組件上如果有 onEnable 方法,這些方法將被執行

this.node.active = false;

如該節點原先就已經被激活,修改 active 爲 false 就會立即觸發關閉操作:

  • 在場景中隱藏該節點和節點下的所有子節點
  • 該節點和所有子節點上的所有組件都將被禁用,也就是不會再執行這些組件中的 update 中的代碼
  • 這些組件上如果有 onDisable 方法,這些方法將被執行

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章