![]() |
|
||||||||||
|
|||||
|
[+4 28.04.08]
|
задача:
1. есть два мувиклипа: clip_1_mc, clip_2_mc 2. clip_1_mc - больше, clip_2_mc - меньше, располагается поверх clip_1_mc что надо получить: 1. при наведении на clip_1_mc происходит некоторая реакция (например this._alpha = 50), при "уведении" - обратная (например this._alpha = 100) 2. для clip_2_mc все абсолютно аналогично. реакция на наведение\уведение 3. при наведении на маленький клип clip_2_mc, большой clip_1_mc остается "наведенным". Вроде бы все просто: использовать hitTest для clip_1_mc. Да вот проблема: высота flash-ролика совпадает с высотой clip_1_mc, поэтому hitTest будет работать некорректно, а именно не будет отрабатывать событие "уведения", т.к. последнее отслеженное значение _ymouse всегда будет еще над роликом, а соответсвенно и над clip_1_mc. Фактически тут соединены две задачи: "кнопка в кнопке" и "курсор над роликом". Сталкивался ли кто-то с подобной проблемой в рамках AS1-2, и было ли найдено решение?
__________________
icq 247164778 |
|
|||||
|
Привет!
Может не все понял, но я бы просто написал так: Последний раз редактировалось Жень Шень; 15.04.2009 в 17:14. |
|
|||||
|
[+4 28.04.08]
|
to Жень Шень:
В ситуации движения курсора по пути "за пределами swf > бОльший клип > меньший клип > бОльший клип > за пределами swf" то что ты написал будет работать так : big_btn.onRollOver big_btn.onRollOut small_btn.onRollOver big_btn.onRollOver(твой искуственный вызов) small_btn.onRollOut big_btn.onRollOver big_btn.onRollOut а требуется чтоб было так: big_btn.onRollOver small_btn.onRollOver small_btn.onRollOut big_btn.onRollOut
__________________
icq 247164778 Последний раз редактировалось mozi; 15.04.2009 в 18:34. |
|
|||||
|
[+4 28.04.08]
|
согласен, как последний неизбежный вариант - да. Хотя честно скажу - не хочется связываться с JS. Мне надо отслеживать и "заход" и "уход" - это же не проблема?
__________________
icq 247164778 |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
Попробуйте переписать содержимое big_btn.onRollOver так, чтобы он не реагировал на связку onRollOut + onRollOver , если она выполняется в пределах одного кадра. Например, отложите выполнение функций onRollOver и onRollOut на 1 кадр каким-нибудь этаким способом: funcDelayed= function(){ delete this.onEnterFrame; this.activeMouseHandler(); } big_btn.onRollOver= function(){ this.activeMouseHandler= _my_onRollOver; this.onEnterFrame= funcDelayed; } big_btn.onRollOut= function(){ this.activeMouseHandler= _my_onRollOut; this.onEnterFrame= funcDelayed; } Последний раз редактировалось Stargazer; 15.04.2009 в 20:17. |
|
|||||
|
[+4 28.04.08]
|
to Stargazer:
суть предложения полностью понятна. возможно это позвоит решить проблему. Только с Цитата:
Завтра попробую.
__________________
icq 247164778 |
|
|||||
|
Имеем:
1. Есть два мувиклипа: big_mc, small_mc 2. big_mc - больше, small_mc - меньше, располагается поверх big_mc Получили 1. При наведении на big _mc происходит big _mc._alpha = 50, при "уведении" - big _mc._alpha = 100. Условие выполнено! 2. Для small_mc все абсолютно аналогично. Условие выполнено! 3. При наведении на маленький клип small _mc, большой big _mc остается "наведенным" – то есть полупрозрачным. Условие выполнено! Смотрим исходник. Так что не так? Последний раз редактировалось Жень Шень; 16.04.2009 в 11:06. Причина: Исправление описки |
|
|||||
|
Banned
[+2 27.03.09]
[+1.4 22.07.09] Регистрация: Mar 2009
Сообщений: 23
|
Я извиняюсй но хотелосй би поднятй етy темy ешё раз и добитй до конца если никто не против? Тут ситуация више напиасана вами понятно.. если нажимаеш на small_mc то добовляете функцию для болйшой onRollOver всё работает заемчателйно не спорю, но а если у етой big_mc не просто будет _alpha =50 а к примеру gotoAndPlay().. то при на водке на small_mc болйшая кнопка продолжит игратй что не нужно.. какие варианти предложите я уже мучаюсй третий денй.. нигде точного решения не нашол
одним словом питаюсй добитца onRollOver в самом onRollOver Последний раз редактировалось LUCKY SHAMROCK; 11.05.2009 в 16:47. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
Автору было как раз нужно Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:08. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|