У меня есть контейнер, содержащий несколько элементов. Я хочу иметь возможность обнаруживать клики на дочерних элементах контейнера и области контейнера (прямоугольник, определенный мной).EaselJS - обработка событий контейнерной мыши
Когда я определяю в контейнере hitArea
, его дети больше не получают события мыши - они отправляются в контейнер вместо этого. Однако без hitArea
Я не могу обнаружить щелчок в области контейнера.
скрипки, иллюстрирующая проблема:
Единственный solution я подошел к тому, чтобы использовать hitArea
и на каждом случае убедитесь, что нет ребенка в контейнере на который он может быть отправлен. Однако этот подход очень раздражает: мне придется поймать все типы событий мыши, несмотря на мой интерес к ним на уровне контейнеров.
Есть ли простое решение для этого случая?
Использование дочернего элемента для остальной части hitArea - это, безусловно, правильный подход, но вы можете просто слушать «контейнер» и проверять «event.target», чтобы определить, что было поражено, а не иметь множественное событие слушатели. 'if (event.target == circle) {doSomething(); } ' – Lanny
@ Lanny, спасибо за ваш ответ, но я проверил его, и он не работает, я чего-то не хватает: http://jsfiddle.net/rs462n76/7/? – user3707125
Если вы установили hitArea, мышки игнорируются (это будет дизайн). Используя ваш второй подход (другой ребенок, размер которого вам нужен), вы можете проверить цель, чтобы увидеть, что было нажато. Некоторые незначительные изменения в вашей скрипке, с комментариями в строке. http://jsfiddle.net/rs462n76/8/ – Lanny