quick-lua中定时器的设计

来源:互联网 发布:cs go 优化参数 编辑:程序博客网 时间:2024/06/05 20:02
该模块在框架初始化时不会自动载入

--加载方式: 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 handleend
计划一个全局延时回调,并返回该计划的句柄。
scheduler.performWithDelayGlobal() 会在等待指定时间后执行一次回调函数,然后自动取消该计划。

0 0