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
方法,這些方法將被執行