【问题标题】:(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)
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        • 2013-06-01
        相关资源
        最近更新 更多