监听表中任何对象的事件

时间:2017-03-19 23:54:34

标签: lua corona

另一个新手查询。现在是我与Corona合作的第三天。

以下代码可以正常工作:气球会产生并漂浮在空中。现在我想使用:addEventListener(" tap",pushBalloon)使它成为当点击气球时执行pushBalloon。谁能告诉我我会使用什么变量以及如何定义它?而且我想我也必须为新变量更改pushBalloon函数。

谢谢。

class BaseClass { /* static constructor here */ }
class BaseClass<T> : BaseClass { /* other stuff */ }

1 个答案:

答案 0 :(得分:1)

您正在将newBalloon对象添加到表中,但是您应该在实例化时为每个newBalloon DisplayObject添加事件侦听器。这并没有完全按照你在标题中提出的要求(简单地将对象插入表中会有效地向该对象添加事件监听器),但是实现了我认为你正在寻找的事件响应。

如果您点击气球,则会将监听器放在气球上。如果您使用“点击”事件,target属性会告诉您触摸了哪个对象,因此您的pushBalloon()功能适用于任何气球。

local pushBalloon( event )
   local balloon = event.target

   if event.phase == "began"

       -- do something to the balloon object (apply impulse, etc.)

   end

end


local function createBalloon()
    ...
    local newBalloon = display.newImageRect( ... )

    if newBalloon then

        -- set properties of DisplayObject and add event listener

        newBallon:addEventListener( "tap", pushBalloon )

    end
    ...
end

我已将检查中的addEventListener()打包,以确保newBalloon ~= nil