![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2011
Сообщений: 19
|
Всем привет.
Вопрос наверное банальный, но у меня не получается найти нормального решения. В флешке при клике на кнопку, создается всплывающее меню, которое должно быть видно пока пользователь не кликнет на какой то пункт или не кликнет вне него. Вот вопрос вызывает именно "не кликнет вне него". Не могу придумать как это сделать. Добавлять прослушку на самом верхнем уровне иерархии объектов имхо будет не очень удобно, потому что вокруг будет много кликабельных объектов и определять на чем именно был клик будет сложно. Еще есть мысль создать класс-менеджер таких всплывающих меню и передовать ему событие клика на сцене, но это по-моему вариант не лучше. Есть ли какой то простой способ скрыть меню, при клике вне него (вот прямо как сделано на рабочем столе Windows)? |
|
|||||
|
Внутри меню слушать Event.ADDED_TO_STAGE.
Как только событие произошло, мы можем подписаться на MouseEvent.CLICK у DisplayObject#stage. Событие возникло - сворачиваем меню. Тем самым, отпадает какая либа нужда в менеджере и кастомных сообщений из вне. |
|
|||||
|
Цитата:
а я бы вообще создал класс пункта меню (он же по-любому будет как-то выглядеть), и в обработчике MOUSE_UP проверял бы |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 19
|
спасибо за ответ. но я похоже совсем нуб. у меня меню совсем не появляется теперь.. похоже оно уничтожается сразу после создания..
вообщем дело в том что оно создается при клике на объект. и когда я регистрирую событие глобального клика, то оно сразу же и срабатывает. помогите пожалуйста( вспомнил про Event.StopPropagation(), останавливаю в событии клика, перед созданием объекта меню. Все хорошо, не считая того что у меня несколько объектов, при клике на которые создаются менюшки. И такой способ не убирает меню, если кликнуть по другому объекту, который просто создает второе меню. Добавлено через 54 минуты никто не подскажет? Последний раз редактировалось stasuss; 05.02.2013 в 14:51. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|