![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
|
Подскажите, пожалуйста, как обойти реагирование на onRollOver клипа, если указатель навелся на кнопку (Button) или другой клип (MovieClip)?
У меня есть некий клип "back_mc" с назначеными ему двумя событиями onRollOver и onRollOut. Эти события запускают функцию "показать панель навигации" и "спрятать панель навигации" соответственно. Т.е. как в некоторый флеш flv-плеерах на сайтах: при наведении мышки в область плеера всплывает панель управления, при выходе мышки за область - панель убирается. Хочу сделать также, но у меня панель убирается не только при выходе указателя мышки за границы моей флешки, но и при наведении мышки на любую кнопку внутри флешки (потому как срабатывает back_mc.onRollOver и указатель мышки наводится на эту кнопку). Если кто делал подобное, скажите как можно показывать/прятать клип-панель управления при наведении/выходе мышки в область флешки, и чтобы нормально работали все кнопки на этой панели управления !? Последний раз редактировалось RAlfDog; 01.08.2009 в 22:09. |
|
|||||
|
лучше делать на движение мыши.
Если мышка катается по флешу показываем панель. Как только остановилась по таймеру убираем панель. |
|
|||||
|
Модрон-ветеринар
|
При наличии большого количества элементов, которые должны реагировать на наведение мыши и потенциальных проблем со взаимными перекрытиями их активных областей используйте проверки hitTest вместо метода onRollOver.
Это гибко и позволяет четко указывать условия, при которых нужно или не нужно вызвать то или иное действие. Все проблемы отпадают. Для непрерывной проверки hitTest делайте, например, с использованием функции onMouseMove. |
|
|||||
|
Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
|
Цитата:
![]() А при выходе мышки за пределы контейнера флеш-плеера событие onMouseMove вызывается? |
|
|||||
|
Модрон-ветеринар
|
Вот самый простой код:
panelShowed = 0; this.onMouseMove = function () { if (back_mc.hitTest(_root._xmouse, _root._ymouse) && panelShowed == 0) { panelShowed = 1; trace("показываем панель"); } if (!back_mc.hitTest(_root._xmouse, _root._ymouse) && panelShowed == 1) { panelShowed = 0; trace("прячем панель"); } }; Или подумайте еще ![]() |
|
|||||
|
у меня возникла такая же проблема ... и предложенные здесь варианты не работают.
может быть есть запись типа mc.onRollOver = fulse, null, undefined или чтонить похожее?? либо можно както "распаковать" mc? сменить глубину и т.д.??? самое мощное, что пришло мне в голову, это удалить полностью mc и создать его по новой ... или перекрыть ...но это, мне кажется, далеко не самый изящный вариант ... |
|
|||||
|
Модрон-ветеринар
|
|
|
|||||
|
с ним эффекты не очень запускать))) там надо переменные водить, так как у меня эта тема создается для многих объектов динамически, с большой степенью вложенности то мне просто не подходит ...
спасибо за ответ)))) жаль .. но даже если на внешний клип удалить событие, то на внутренний работать не хочет .. может конечно тому причины динамические имена мувиков((( Последний раз редактировалось skald; 31.10.2009 в 15:41. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|