我有一个关于用Corona / Lua分层图像/按钮的问题。如果我在另一个按钮上创建一个按钮然后单击它,则会触发两个按钮的事件。我该如何防止这种情况?
谢谢,Elliot Bonneville
编辑:这是我创建按钮的方式:
button1 = display.newImage("button1.png")
button1:addEventListener("tap", Button1Call)
button2 = display.newImage("button2.png")
button2:addEventListener("tap", Button2Call)
答案 0 :(得分:5)
从事件处理函数返回true。触摸事件不断传播通过侦听器直到处理;它在这里解释:
http://developer.anscamobile.com/content/events-and-listeners#Touch_Events
请注意,事件侦听器必须侦听同一事件。换句话说,两个听众必须设置为“触摸”或“点击”。从字面上看,昨晚我被这个绊倒了;我有一个按钮,听“触摸”,另一个图像在顶部听“轻拍”,并想知道为什么按钮仍在接收事件。
答案 1 :(得分:1)
在处理事件的事件处理程序中使用return true
以防止进一步的事件传播。
因此,在您的示例中,button2
将首先获取事件,因为它是最后创建的。如果您在Button2Call
和return true
中处理该活动,Button1Call
将根本无法看到该活动。如果您return false
,或者只是完全忽略return
声明,Button1Call
将获得该事件,并可以决定是否处理该事件。