2015-05-03 4 views
0

Я динамически создаю изображения и назначая им прослушиватель событий, когда я нажимаю на изображение событие для всех изображений, а не только тот, который я использовал.EventListener для каждого изображения, подписанного вместо одного?

Я бы ожидал, что он просто выстрелит один раз, и где я ошибся?

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 

ответ

2

Похоже, что вы размещаете изображения один поверх остальных, так что при нажатии на верхний, вы на самом деле нажав все из них. Затем прослушиватели «Tap» называются один за другим. В короне, чтобы остановить событие от просачивания, слушатель должен вернуть «истину».

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/

+0

удивительного спасибо, я дам этому попытку позже и знак, если правильно. – shenku

Смежные вопросы