【问题标题】:(Corona SDK) Call function once from an "enterFrame" function(Corona SDK)从“enterFrame”函数调用一次函数
【发布时间】:2015-07-04 20:42:35
【问题描述】:
我想知道如何从 Corona SDK 中的“enterFrame”函数调用一次函数。
假设我有:
local function funa()
i = i+1
funb()
end
Runtime:addEventListener("enterFrame", funa)
除了希望每帧增加“i”之外,我还想运行“funb”,但每帧只运行一次而不是一次,但我不知道该怎么做。
有什么想法吗?
【问题讨论】:
标签:
function
lua
runtime
coronasdk
【解决方案1】:
除了使用全局变量来跟踪这一点的更简单和更明显的解决方案之外,您还可以使用闭包。示例:
local
function funa()
local run_already = false
local i = 0
return function()
i = i+1
if not run_already then
funb()
run_already = true
end
end
end
funa = funa()
funa()
funa()
【解决方案2】:
local run_flag = false
local function funa()
i = i+1
if not run_flag then
funb()
run _flag = true
end
end
Runtime:addEventListener("enterFrame", funa)
现在我将增加每一帧,但函数将被调用一次。