我在使用Corona時遇到問題,需要幫助。Lua中的addEventListener()
當我註冊一個事件監聽器,如object:addEventListener("touch", listener)
。但聽衆的功能有很多這樣的參數:
function listener (event, param1, param2...)
...
end
我的問題是,如何將所有的參數傳遞給偵聽器。所有搜索只傳遞一個段落事件。
謝謝!
我在使用Corona時遇到問題,需要幫助。Lua中的addEventListener()
當我註冊一個事件監聽器,如object:addEventListener("touch", listener)
。但聽衆的功能有很多這樣的參數:
function listener (event, param1, param2...)
...
end
我的問題是,如何將所有的參數傳遞給偵聽器。所有搜索只傳遞一個段落事件。
謝謝!
local function listener(param1, param2)
return function(event)
print(event.name, event.phase, param1, param2)
end
end
Runtime:addEventListener("touch", listener(12, 33))
Runtime:addEventListener("tap", listener(55, 77))
執行此操作的一種方法是隻將屬性添加到附加處理程序的對象。在收聽者中,您可以通過參數event.target
訪問它們。
例如,增加新的param1
和param2
性質一些圖像對象:
local touchHandler = function(event)
if event.phase == "began" then
local t = event.target
print("param1=" .. t.param1 .. ", param2=" .. t.param2)
end
end
local image1 = display.newImageRect("myImage.png", 100, 100)
image1.param1 = "Apple"
image1.param2 = "Zucchini"
image1:addEventListener("touch", touchHandler)
local image2 = display.newImageRect("myImage.png", 100, 100)
image2.param1 = "AC/DC"
image2.param2 = "ZZ Top"
image2:addEventListener("touch", touchHandler)
這將打印「蘋果」和「西葫蘆」當你觸摸圖像1,並打印「AC/DC」和「ZZ的頂級「每次你觸摸image2。
你可以使用下面的類事件添加到任何LUA表:
https://github.com/open768/library/blob/master/lib/lib-events.lua
注意[僅鏈接答案](http://meta.stackoverflow.com/tags/link-only -answers/info),所以SO答案應該是搜索解決方案的終點(而另一個引用的中途停留時間往往會隨着時間的推移而變得過時)。請考慮在此添加獨立的摘要,並將鏈接保留爲參考。 – kleopatra
請提供答案deatails .. –