在Corona SDK中循环调用计时器。

为了无限次调用定时器,我正在使用以下代码:

function A()
    print("Hello")
    timer.performWithDelay(100, B, 1)
end

function B()
    timer.performWithDelay(500, A, 1)
end

timer.performWithDelay(100, A, 1)

因此,如果我想在特定的时间间隔内打印 hello,我会使用这两个函数进行调整。 但是我面临的问题是,一段时间后定时器变慢,并且频繁调用函数 A。 有人能建议我是否做对了吗? 为了解决定时器问题,我应该怎么做?

提前致谢。

点赞
用户1979583
用户1979583

如果您想无限次调用计时器,则可以使用以下方式之一:

timer.performWithDelay(100, functionName, -1)

或者

timer.performWithDelay(100, functionName, 0)

在您的情况下,在再次调用计时器之前,您需要取消计时器。 因此,请按以下方式执行:

local timer_1,timer_2,timer_3
function A()
    print("Hello")
    if(timer_1)then timer.cancel(timer_1) end  -- 如果存在,则取消“timer_1”
    if(timer_3)then timer.cancel(timer_3) end  -- 如果存在,则取消“timer_3”
    timer_2 = timer.performWithDelay(100, B, 1)
end

function B()
    if(timer_2)then timer.cancel(timer_2) end  -- 如果存在,则取消“timer_2”
    timer_3 = timer.performWithDelay(500, A, 1)
end

timer_1 = timer.performWithDelay(100, A, 1)

在这里您可以看到,我创建了计时器对象(timer_1,timer_2和timer_3),并在调用另一个/相同的计时器之前取消了正在进行的计时器。

继续撰写代码.... :)

2014-02-26 06:56:54