这段代码在 for 循环中,包含一个定时器,这个定时器只执行一次

我想让这段代码模拟一个节拍器,怎样才能让它继续调用定时器,而不是执行最后一次迭代并停止?

-- main.lua

tempo = 60000/60

for i = 1, 100 do

        local accomp = audio.loadStream("sounds/beep.mp3")
            audio.play(accomp, {channel = 1})
        audio.stopWithDelay(tempo)

        timer.performWithDelay(tempo, listener)

end
点赞
用户936986
用户936986

performWithDelay 接受第三个参数指定循环次数,您不需要手动操作。

local accomp = audio.loadStream("sounds/beep.mp3")
timer.performWithDelay(tempo, function() audio.play(accomp, {channel = 1}) end, 100)
2016-05-18 12:03:09
用户2858170
用户2858170

请阅读手册。。。

timer.performWithDelay会在给定的延迟后调用listener函数。

你不需要加载这个文件100遍,一遍足够了。你调用计时器函数100次是无意义的,因为你没有任何侦听器函数。请在使用函数之前阅读文档,这样就知道它们的作用以及如何正确使用它们。如果你不了解食材,就无法烹制美味佳肴。

删除那个循环,并实现一个侦听器函数。

使用可选的第三个参数iterations来指定你要重复多少次。使用-1表示无限重复...

所有都在那里。你只需要RTFM。

2016-05-18 12:03:14