【问题标题】:Create event listener with parametrs Lua使用参数 Lua 创建事件监听器
【发布时间】:2013-03-29 01:53:30
【问题描述】:

我需要创建带有更多参数的 enterFrame 侦听器,而不仅仅是事件。我读过这个: addEventListener() in Lua 第一种方式,使用

local function listener(param1, param2)
     return function(event)
          print(event.name, event.phase, param1, param2)
     end
end    
Runtime:addEventListener("touch", listener(12, 33))

工作得很好,但现在我在删除这个 enterFrame 侦听器时遇到了问题。

Runtime:removeEventListener("enterFrame",listener);

不起作用,因为函数名称不是“侦听器”。 如何删除?

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    您可以缓存您正在创建的函数,这样listener(x, y) 将始终返回相同的函数。这样的事情可能会奏效:

    local listeners = {}
    local function listener(param1, param2)
         -- add some separator, so 1,12 is different from 11,2
         local key = param1.."\1"..param2
         listeners[key] = listeners[key] or function(event)
              print(event.name, event.phase, param1, param2)
         end
         return listeners[key]
    end
    

    由于listener(12, 33) 将始终返回相同的结果,现在您可以使用Runtime:removeEventListener("enterFrame",listener(12,33))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 2020-12-30
      • 2016-08-13
      • 1970-01-01
      相关资源
      最近更新 更多