![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Есть необходимость сделать следующий пирог:
- внизу лежит большой и плоский мувиклип, на котором набросаны эффекты, связанные с отслеживанием событий MOUSE_OVER/MOUSE_OUT курсора мыши, например, зажигаются/гаснут некоторые сектора сцены. - вверху над этим клипом висят динамически порожденные объекты, у которых свои листенеры событий MOUSE_OVER/MOUSE_OUT Никаких родственных отношений ни у кого нет (и мне нужно обойтись без них по разным причинам). Сейчас когда мышка двигается по сцене, отрабатывают события клипа на бэкграунде, но при заходе на объект, тот перехватывает ее события MOUSE_OVER/MOUSE_OUT и они вниз уже не проходят. Как победить? |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
на вскидку не получилось.
сделал так: объектам, которые висят спереди, в обработку события MOUSE_OVER добавил генерацию события "mouseOverObject", а всем объектам, которые сидят внутри мувика на бэкграунде повесил листенер на событие "mouseOverObject". Но событие туда не прошло. Может это из-за того, что мувик на бэкграунде подкачивается и запускается во время исполнения приложения? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вы событие всплывающим отправляете?
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А, ну, нижележащие объекты событий мыши не получат. Вам нужно написать контроллер мыши, который, используя getObjectsUnderPoint будет выделять нужные объекты.
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Через getObjectsUnderPoint - довольно занятно.
а есть у нас способ проверить, существует ли у объекта такой-то метод? Я бы применил этот метод ко всем объектам под курсором мыша, у которых метод существует и все. можно, конечно, через try, но не люблю плодить ошибки запланированно. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Повесить на них интерфейс какой-нибудь. Нужно учесть, что getObjectsUnderPoint будет выдавать вам ссылки на шейпы внутри ваших объектов, а не на сами объекты. Поэтому нужно проходить по parent-ам и выяснять, на что наведена мышь.
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
да уж...
что-то мне кажется, должен быть какой-нибудь простой способ реализации всего этого. А нет ли у нас возможности запускать событие не вообще воздух, а в конкретный контейнер? Или не так. У нас есть контейнер, его имя мы знаем. Нулевым чилдом кладем алармер, когда нужно разослать события объектам внутри контейнера, дергаем этого алармера, он диспатчит событие... Остальные объекты внутри контейнера это событие услышат? |
|
|||||
|
сделайте общий контейнер для клипа с эффектами и для объектов, в нем ловите MOUSE_OVER объектов и дергайте клип с эффектами. В принципе клип с эффектами может и не быть ребенком контейнера, достаточно иметь на него ссылку.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:49. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|