Глобальные события мыши.
В AS3 события мыши посылаются только объектами InteractiveObject, которые обязательно должны входить в DisplayList.
Из-за этого могут возникать трудности при ловле мышиных событий объектами не расположенными на сцене.
Посмотрев на класс GlobalMouse Дениса Коляко, написал свой аналог:
Объект MouseStage - наследник InteractiveObject, всегда находится на сцене и посылает события MouseEvent.
Использовав MouseStage класс в качестве Document Class'a или унаследовав свой Document class от класса MouseStage, мы можем ловить сыбытия любым объектом в программе.
Вспомогательный класс к описанному выше примеру:
P.S.
В классе MouseStage изменено свойство Stage.align. Если вам нужно другое значение этого свойства, увеличьте размеры отрисовываемого спрайта в функции setNullSprite().
UPD:
Теоретически , после инициализации MouseStage, можно было засуть какую-нбудь кнопку на уровень ниже чем nullSprite. Для этого пришлось переопределить методы DisplayObjectContainer.addChildAt() и DisplayObjectContainer.getChildAt(). Теперь объект nullSprite полностью инкапсулирован.
Leave a Reply
You must be logged in to post a comment.
