【问题标题】:EventListener firing for every image subscribed instead of just the one?EventListener 为每个订阅的图像触发,而不仅仅是一个?
【发布时间】:2015-05-03 21:52:16
【问题描述】:

我正在动态创建图像并为它们分配一个事件侦听器,当我点击图像时,所有图像的事件都会触发,而不仅仅是我点击的那个。

我希望它只会触发一次,那么我哪里出错了?

  math.randomseed(os.time())

  for i = 1,20 do
    addImage(i)
  end

function addImage(index)

  local image = display.newImage("image.png", 10, 10)
  image:addEventListener('tap', action)

end

function action(event)

  local image = event.target

end

【问题讨论】:

    标签: lua coronasdk


    【解决方案1】:

    看起来您将一张图片放在其他图片之上,所以当您点击最上面的一张时,您实际上是在点击所有图片。 然后依次调用“Tap”侦听器。 在 Corona 中,要阻止事件渗透,侦听器必须返回“true”。

    function action(event)
        local image = event.target
        ...
        return true --prevent propagation to underlying tap objects
    end
    

    您可以在此处阅读更多内容: https://coronalabs.com/blog/2013/10/01/tutorial-taptouch-anatomy/

    【讨论】:

    • 非常感谢,稍后我会尝试并标记是否正确。
    猜你喜欢
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多