![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
Stage подписан на движение мышью. Хочу с верху положить клип так, что бы при движении мышью над этим клипом stage это событие не получал. \
Знаю как сделать так. Можно передать ссылку на stage. При rollOver снимать событие со stage, на rollOut снова ставить. Но если у меня поверх stage много таких объектов разнородных, то я упарюсь везде это прописывать. Может есть какой более приятный способ? |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 428
|
MovieClip.mouseEnabled = true
или false.. Не совсем понял задачи |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
leofit мне нужно что бы событие движения мыши не ушло дальше верхнего клипа. Stage ловит событие движения мышью что я ни делаю. Не хочется тащить ссылку на stage. Хочется просто заблокировать событие на этом клипе.
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 28
|
сделай проще - создай мувик размером со стейдж и наложи это событие на него. И срабатывать событие будет только тогда, когда мышь будет непосредственно над видимой частью этого мувика, не закрытой другими клипами.
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
vitalFriend, спасибо, но такое мне не подойдет)
silin, то что нужно. Спасибо. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
wvxvw Что такое "capture фазу"? У меня все заработало с stopPropagation.
|
|
|||||
|
Modus ponens
|
У всех событий которые диспатчатся дисплей объектами всегда есть 2 фазы - capture и target. Иногда у них еще может быть третья фаза - bubbling. Как правило, когда вы добавляете слушателя - вы его добавляете на bubbling / target фазу (эти две случаются после capture). К сожалению, во флешевой реализации событий и дисплей листа вы не можете из дисплей объекта диспатчить событие без capture фазы (ну, только разве что если вы замените ему dispatchEvent и подставите туда диспетчер, который не является дисплей объектом.
Но это не всегда удобно + медленно. Еще один недостаток в реализации capture фазы заключается в том, что если вы добавите слушателя не непосредственно к объекту, а к любому из его родителей, то вы все равно это событие получите... и вот это уже геморрой... А, поскольку stage - это самый верхний объект в дисплей листе, то все события на capture фазе сначала прийдут к нему, а потом уже спустятся к потомкам... Другими словами - если у вас всю сцену перекрывает какой-нибудь дисплей объект подписаный, на, например, MouseEvent.CLICK, useCapture=false|true (не важно), и, в это же время stage подписан на MouseEvent.CLICK, useCapture=true - то stage получит событие первым, и вы не успеете запустить stopImmediatePropagation() - вот такие вот пироги с котятами...
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 25.12.2009 в 18:07. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|