【发布时间】:2011-11-16 06:53:09
【问题描述】:
假设我在一个类中有一个事件监听器,如下所示:
Vehicle = {}
...
function Vehicle:touch(event)
-- do something with self
return
end
displayObject:addEventListener("touch", self)
如何将“touch”方法设置为本地方法,以便没有人有从这个类之外调用它的冲动?不让编译器抱怨。
谢谢迈克。我没有意识到你可以像 UI.lua 那样做:
local function newButtonHandler( self, event )
...
end
function newButton( params )
...
button.touch = newButtonHandler
button:addEventListener( "touch", button )
...
end
但是,参数(self,event)在
local function newButtonHandler( self, event )
是我以前从未见过的东西——通常只是(事件)。作为 addEventListener 的暗示,self 和 event 是否会自动发送到事件侦听器方法?
无论如何,我最初想要做的是让一个与显示对象不同的对象(称为“buttonManager”)被发送到类 eventListener 方法,因为我需要在那里访问 buttonManager。所以我想我可以写:
button:addEventListener( "touch", buttonManager )
但这会导致 eventListener 根本没有被调用。如何将 buttonManager 获取到 eventListener?
【问题讨论】:
标签: events lua coronasdk listeners