Timer 在Corona SDK的循环中调用计时器

Timer 在Corona SDK的循环中调用计时器,timer,lua,coronasdk,Timer,Lua,Coronasdk,无限次调用我正在使用的计时器 function A() print("Hello") timer.performWithDelay(100, B, 1) end function B() timer.performWithDelay(500, A, 1) end timer.performWithDelay(100, A, 1) 因此,如果我想在特定的时间间隔内打印hello,我将使用这两个函数进行调整。 但我面临的问题是,一段时间后,计时器变慢,调用函数的速度非常

无限次调用我正在使用的计时器

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

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

timer.performWithDelay(100, A, 1)
因此,如果我想在特定的时间间隔内打印hello,我将使用这两个函数进行调整。 但我面临的问题是,一段时间后,计时器变慢,调用函数的速度非常快。 有谁能建议我做得对吗?要解决计时器问题,我应该怎么做


提前感谢。

如果您想无限次地调用计时器,您可以使用:

timer.performWithDelay(100, functionName, -1)

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

local timer_1,timer_2,timer_3
function A()
    print("Hello")
    if(timer_1)then timer.cancel(timer_1) end  -- cancelling 'timer_1' if exists
    if(timer_3)then timer.cancel(timer_3) end  -- cancelling 'timer_3' if exists
    timer_2 = timer.performWithDelay(100, B, 1) 
end

function B()
    if(timer_2)then timer.cancel(timer_2) end  -- cancelling 'timer_2' if exists
    timer_3 = timer.performWithDelay(500, A, 1)
end

timer_1 = timer.performWithDelay(100, A, 1) 
在这里您可以看到,我已经创建了timer对象(timer_1、timer_2和timer_3),并在调用另一个/同一个计时器之前取消可能正在进行的计时器


继续编码…………:)

如果要无限次调用计时器,可以使用:

timer.performWithDelay(100, functionName, -1)

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

local timer_1,timer_2,timer_3
function A()
    print("Hello")
    if(timer_1)then timer.cancel(timer_1) end  -- cancelling 'timer_1' if exists
    if(timer_3)then timer.cancel(timer_3) end  -- cancelling 'timer_3' if exists
    timer_2 = timer.performWithDelay(100, B, 1) 
end

function B()
    if(timer_2)then timer.cancel(timer_2) end  -- cancelling 'timer_2' if exists
    timer_3 = timer.performWithDelay(500, A, 1)
end

timer_1 = timer.performWithDelay(100, A, 1) 
在这里您可以看到,我已经创建了timer对象(timer_1、timer_2和timer_3),并在调用另一个/同一个计时器之前取消可能正在进行的计时器


继续编码…………:)

谢谢。我试过了,但还是出了同样的问题。@Akshada Systematix:在调用下一个之前,也尝试取消所有其他计时器。好的,谢谢。我试过了,但还是出了同样的问题。@Akshada Systematix:在调用下一个之前,也尝试取消所有其他计时器。那就行了。