![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 65
|
Как правильно организовать захват мышки конкретным MovieClip'ом, например при нажатии на него?
В обработчике нажатия я добавляю слушателей на все события мышки, чтобы не реагировали остальные компоненты. А по отпусканию мышки снимаю слушателей. function mouseDown(e:MouseEvent):void { stage.addEventListener(MouseEvent.MOUSE_MOVE,ignore,false,int.MAX_VALUE); stage.addEventListener(MouseEvent.MOUSE_MOVE,ignore,true,int.MAX_VALUE); //и так на все события } function ignore(e:MouseEvent):void { e.stopImmediatePropagation(); } Иногда такое поведение сбоит логику компонентов. Можно обойти этот косяк или вообще по другому организовать захват мышки? |
|
|||||
|
Modus ponens
|
Просто отказаться от идеи и использовать mouseChildren когда это необходимо. Еще вариант - положить на стейдж клип, который бы весь стейдж закрывал и слушать события у него, а всем остальным диспатчить в зависимости от положения мышки (примерно так это сделано во флексовом фреймворке), но, по-моему, второй вариант плохой т.как 1. события мышки будут все время ловиться (лишняя нагрузка), 2. +1 (как минимум) лишний вызов метода. 3. возникнут сложности при загрузке такой флешки в другую / изменении свойства scale у стейджа и т.д.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 65
|
От идеи отказываться не хотелось бы - это дополнительное удобство пользователям.
mouseChildren работает отлично! Спасибо. Кому интересно: |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|