Corona/Lua 中的不同层级

我有一个关于使用Corona/Lua合成图像/按钮的问题。如果我在另一个按钮的上面创建一个按钮,那么当点击它时,两个按钮的事件都会被触发。我该如何防止这种情况发生?

谢谢,Elliot Bonneville

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

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

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

原文链接 https://stackoverflow.com/questions/6114817

点赞
stackoverflow用户5420
stackoverflow用户5420

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

因此,在您的示例中,button2 将首先获得事件,因为它是最后创建的。如果您在 Button2Call 中处理事件并返回 true,则 Button1Call 将根本看不到该事件。如果您返回 false,或者干脆留出 return 语句,Button1Call 将获取事件,并决定是否处理它。

2011-05-24 18:42:33
stackoverflow用户686008
stackoverflow用户686008

从事件处理函数中返回 true。触摸事件会一直传递到有处理函数的侦听器,这里有解释:

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

请注意,事件侦听器必须监听同一事件。换句话说,两个侦听器必须都设置在“touch”或“tap”上。就在昨晚,我因此被绊倒了;我有一个监听“touch”的按钮和另一个位于上面的监听“tap”的图像,一直在想为什么按钮仍在接收事件。

2011-05-25 12:16:52