Corona / Lua的不同层次

时间:2011-05-24 18:03:02

标签: events button lua corona

我有一个关于用Corona / Lua分层图像/按钮的问题。如果我在另一个按钮上创建一个按钮然后单击它,则会触发两个按钮的事件。我该如何防止这种情况?

谢谢,Elliot Bonneville

编辑:这是我创建按钮的方式:

button1 = display.newImage("button1.png")
button1:addEventListener("tap", Button1Call)

button2 = display.newImage("button2.png")
button2:addEventListener("tap", Button2Call)

2 个答案:

答案 0 :(得分:5)

从事件处理函数返回true。触摸事件不断传播通过侦听器直到处理;它在这里解释:

http://developer.anscamobile.com/content/events-and-listeners#Touch_Events

请注意,事件侦听器必须侦听同一事件。换句话说,两个听众必须设置为“触摸”或“点击”。从字面上看,昨晚我被这个绊倒了;我有一个按钮,听“触摸”,另一个图像在顶部听“轻拍”,并想知道为什么按钮仍在接收事件。

答案 1 :(得分:1)

在处理事件的事件处理程序中使用return true以防止进一步的事件传播。

因此,在您的示例中,button2将首先获取事件,因为它是最后创建的。如果您在Button2Callreturn true中处理该活动,Button1Call将根本无法看到该活动。如果您return false,或者只是完全忽略return声明,Button1Call将获得该事件,并可以决定是否处理该事件。