(Corona SDK)从“enterFrame”函数调用一次函数

时间:2015-04-26 13:12:05

标签: function lua runtime corona

我想知道如何从Corona SDK中的“enterFrame”函数调用一次函数。

让我说我有:

local function funa()
    i = i+1
    funb()
end

Runtime:addEventListener("enterFrame", funa)

除了希望每一帧都增加'i'之外,我还想运行“funb”,但每帧只有一次而不是一次,但我无法找到如何做到这一点。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

除了使用全局变量来跟踪这个的更简单和更明显的解决方案之外,您还可以使用闭包。例如:

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()

答案 1 :(得分:0)

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)

现在我将增加每一帧,但函数将被调用一次。