Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function (Corona SDK)从一个;enterFrame";功能_Function_Lua_Runtime_Coronasdk - Fatal编程技术网

Function (Corona SDK)从一个;enterFrame";功能

Function (Corona SDK)从一个;enterFrame";功能,function,lua,runtime,coronasdk,Function,Lua,Runtime,Coronasdk,我想知道如何从Corona SDK中的“enterFrame”函数调用一次函数 假设我有: local function funa() i = i+1 funb() end Runtime:addEventListener("enterFrame", funa) 除了希望“i”每帧递增外,我还希望运行“funb”,但每个帧只运行一次,而不是一次,但我不知道如何做到这一点 有什么想法吗?除了使用全局变量来跟踪这一点的更简单、更明显的解决方案之外,您还可以使用闭包。例如: loc

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

假设我有:

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

Runtime:addEventListener("enterFrame", funa)
除了希望“i”每帧递增外,我还希望运行“funb”,但每个帧只运行一次,而不是一次,但我不知道如何做到这一点


有什么想法吗?

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

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()
现在我将增加每一帧,但函数将被调用一次

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)