Различные слои в Corona / Lua - PullRequest
2 голосов
/ 24 мая 2011

У меня есть вопрос о наложении изображений / кнопок с помощью Corona / Lua. Если я создаю одну кнопку поверх другой, а затем нажимаю на нее, запускаются события обеих кнопок. Как мне это предотвратить?

Спасибо, Эллиот Бонневиль

РЕДАКТИРОВАТЬ: Вот как я создаю кнопки:

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

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

Ответы [ 2 ]

5 голосов
/ 25 мая 2011

Возвращает true из функции обработки событий. События касания продолжают распространяться через слушателей, пока не будут обработаны; это объясняется здесь:

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

Обратите внимание, что прослушиватели событий должны прослушивать одно и то же событие. Другими словами, оба слушателя должны быть настроены на «касание» или «касание». Буквально прошлой ночью я был сбит с толку этим; У меня была кнопка, слушающая «касание», и другое изображение сверху, слушая «касание», и мне было интересно, почему кнопка все еще получает события.

1 голос
/ 24 мая 2011

Используйте return true в обработчике событий, где вы обрабатываете событие, чтобы предотвратить дальнейшее распространение события.

Итак, в вашем примере button2 получит событие первым, так как оно было создано последним. Если вы обработаете событие в Button2Call и return true, Button1Call не увидит событие вообще. Если вы return false или просто полностью пропустите оператор return, Button1Call получит событие и решит, обрабатывать ли его.

...