--加載方式: 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() 會在等待指定時間後執行一次回調函數,然後自動取消該計劃。