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/
我正在动态创建图像并为它们分配一个事件侦听器,当我点击图像时,所有图像的事件都会触发,而不仅仅是我点击的那个。
我希望它只触发一次,所以我哪里出错了?
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/