【问题标题】:Different layers in Corona/LuaCorona/Lua 中的不同层
【发布时间】:2011-09-01 04:06:15
【问题描述】:

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

谢谢,艾略特·邦纳维尔

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

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

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

【问题讨论】:

    标签: events button lua coronasdk


    【解决方案1】:

    从事件处理函数返回真。触摸事件一直通过侦听器传播,直到被处理;这里有解释:

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

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

    【讨论】:

    • 感谢@jhocking 这对我真的很有帮助,因为我也遇到了这个问题......太好了!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      • 2013-09-08
      • 1970-01-01
      • 2015-03-20
      • 1970-01-01
      相关资源
      最近更新 更多