quick-lua中定時器的設計

該模塊在框架初始化時不會自動載入

--加載方式: local scheduler = require(cc.PACKAGE_NAME .. ".scheduler")
local scheduler = {}

local sharedScheduler = cc.Director:getInstance():getScheduler()

function scheduler.scheduleUpdateGlobal(listener)
    return sharedScheduler:scheduleScriptFunc(listener, 0, false)
end

計劃一個全局幀事件回調,並返回該計劃的句柄。

全局幀事件在任何場景中都會執行,因此可以在整個應用程序範圍內實現較爲精確的全局計時器。

該函數返回的句柄用作 scheduler.unscheduleGlobal() 的參數,可以取消指定的計劃。 

function scheduler.scheduleGlobal(listener, interval)
    return sharedScheduler:scheduleScriptFunc(listener, interval, false)
end

-- 每 0.5 秒執行一次 onInterval()
local handle = scheduler.scheduleGlobal(onInterval, 0.5) 

function scheduler.unscheduleGlobal(handle)
    sharedScheduler:unscheduleScriptEntry(handle)
end

取消一個全局計劃 
scheduler.unscheduleGlobal() 的參數就是 scheduler.scheduleUpdateGlobal() 和 scheduler.scheduleGlobal() 的返回值。

function scheduler.performWithDelayGlobal(listener, time)
    local handle
    handle = sharedScheduler:scheduleScriptFunc(function()
        scheduler.unscheduleGlobal(handle)
        listener()
    end, time, false)
    return handle
end
計劃一個全局延時回調,並返回該計劃的句柄。
scheduler.performWithDelayGlobal() 會在等待指定時間後執行一次回調函數,然後自動取消該計劃。

發佈了137 篇原創文章 · 獲贊 36 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章