![]() |
|
||||||||||
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
Как иначе-то? Совершенно естественное поведение. Кнопка находится внутри меню. Курсор над кнопкой значит что прежде всего он над меню, а потом уже над кнопкой. То есть между курсором и кнопкой "пакетик" меню, в котором лежит эта кнопка. И сначала Вы давите на "пакет", а потом уже "давление" достигает кнопки. Это фаза захвата – когда событие опускается от самого верхнего уровня до самого глубокого объекта под мышью (из списка чувствительных к мыши, естественно). Этот последний, самый глубокий объект, называется target. От него начинается фаза Всплытия (если распространение события не остановлено в обработчике, например методом Event#stopPropagation() ). Поскольку, нажимая на этот объект, Вы естественно нажали на все пакетики, в которые он упакован, каждый из его контейнеров до stage включительно пошлет событие "от себя". Раз Вы на него подписались, то естественно получите. Вы же нажали на Меню, как оно может не посылать событие? Одно из простых "механических" решений состоит в том, что Меню ловит клик не по "всему себе", а только по фоновому для кнопок элементу. То есть фон как бы "кнопка" самого меню, а кнопки меню перекрывают его. Иначе делайте программно, либо с фазами, либо с остановкой распространения.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 170
|
Всем доброго вечера!
Прочитал я про события. Довольно всё печально для меня. Так как же мне тогда стоит поступить, чтобы моё меню закрывалось на любое полученное WindowAppEvent кроме пунктов этого меню и кнопки вызова этого меню, когда мне следом после нажатия на кнопку вызова меню идёт событие полоски меню, которое тут же меню и закрывает? Я пока не придумал решения. Как сделать? Добавлено через 1 час 41 минуту Возился, возился...и похоже ничего лучшего не придумал, чем не добавлять кнопки всплывания контекстного меню в главное меню через addChild(), а сделать их параллельными (просто слой главного меню будет с меньшим индексом в списке отображения их общего контейнера). |
|
|||||
|
Ну это не плохой вариант, наверно. Вы создали себе проблему в результате реализации наследования от таких прародителей. Экранные символы итак поддерживают свойство name, так что roName никчему, вроде как. Да и оперирование именем символа - последнее дело, когда нет средств идентифицировать его иначе ( не знаю, по крайней мере мне его за последний год пользовать не доводилось). По остальному, идентификацию областей я бы реализовал разными контейнерами и/или разными обработчиками ( контроллерами ) для каждой области, как то так... Ну то есть я хочу сказать что ваш фреймворк дублирует итак имеющийся функционал. Но, вы наверно это уже и так поняли...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|