EventListener 为订阅的每张图片都触发,而不仅仅是一张?

EventListener firing for every image subscribed instead of just the one?

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

我希望它只触发一次,所以我哪里出错了?

  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

您似乎是将一张图片放在其他图片之上,所以当您点击最上面的一张时,您实际上是在点击所有图片。 然后 "Tap" 听众一个接一个地被调用。 在电晕中,要阻止事件渗透,听众必须 return "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/