使用一个事件处理两个函数。 Corona SDK

时间:2013-05-27 16:19:17

标签: events lua corona

目前谷歌搜索疯狂只是为了通过一个非常简单(我希望)的方式获得答案,只需触摸一个EventListener即可访问两个或更多功能。

找到了这个

 local touchHandler = function(event)
    if event.phase == "began" then
       local t = event.target
        print( "param1=" .. t.param1 .. ", param2=" .. t.param2 .. ", param3=" .. t.param3 )
    end 
  end

  local loadServerButton = display.newRect(0, 0, 50, 50)
  loadServerButton:setFillColor(0, 0, 0)
  loadServerButton.x=  _W/2     
  loadServerButton.y=  _H/1.35
  loadServerButton.param1 = timestampWrite  
  loadServerButton.param2 = downloadServerAPI   
  loadServerButton.param3 = downloadUserAPI 
  loadServerButton:addEventListener("touch", touchHandler)

但是通过接收来管理它的工作有困难 “运行时错误试图隐藏字段'param3'(函数值)”等等。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我假设timestampWrite函数定义如下:

local timestampWrite = function()
    --some code here
end

这是代码:

local touchHandler = function(event)
    if event.phase == "began" then
       local t = event.target
        print( "param1=" .. t.param1() .. ", param2=" .. t.param2() .. ", param3=" .. t.param3() )
    end 
  end

  local loadServerButton = display.newRect(0, 0, 50, 50)
  loadServerButton:setFillColor(0, 0, 0)
  loadServerButton.x=  _W/2     
  loadServerButton.y=  _H/1.35
  loadServerButton.param1 = timestampWrite  
  loadServerButton.param2 = downloadServerAPI   
  loadServerButton.param3 = downloadUserAPI 
  loadServerButton:addEventListener("touch", touchHandler)

更多信息: