PDA

Просмотр полной версии : непонятное поведение обработчиков OnRollOut и OnRollOver


Gaara
22.01.2008, 23:54
Здравствуйте..

я только начинаю изучать Action Script.. делаю кнопку в которой при входе и выходе из активной зоны проигрываются разные части ролика.. к примеру у меня есть видеоклип, длиной в 10 кадров. первые пять кадров это анимация при выходе из активной зоны, вторые пять кадров - при входе.. на 1-м и 5 кадре стоит stop(), для того чтоб на этом состоянии кнопки остановилось дальнейшее воспроизведение.. далее, в обработчике OnRollOver идет переход во второй кадр, с которого продолжается воспроизведение ролика вплоть до 5-го кадра (воспроизведение ролика при входе в активную область), а в обработчике OnRollOut - переход на 6-й кадр для воспроизведения ролика до 10-го (и тут же по кругу до 1-го, на котором и остановится воспроизведение) для отображения ухода с активной области..

собственно сама проблема.. если интервал между входом и выходом курсора в активной области больше чем длительность воспроизведения одной из частей, то все ок.. но если меньше, начинаются глюки.. прикрепляю к теме меню с двумя такими кнопками, я могу неясно обьясняться, может будет проще увидеть, чем читать мои обьяснения..

CorC
23.01.2008, 10:00
Нужно отслеживать номер кадра выхода _currentframe и начинать воспроиведение с _totalframes - _currentframe

Gaara
23.01.2008, 12:40
ничего не понял..

ну отслеживать это понятно, с помощью _currentframe определю к примеру что в этот момент предыдущий ролик еще не доигрался.. но а как принудительно заставить воспроизведение с другого кадра?

Aisaid
23.01.2008, 13:01
main_btn.onRollOver = function() {this.gotoAndPlay(2);}
main_btn.onRollOut = function() {this.gotoAndPlay(7);}
course_btn.onRollOver = function() {this.gotoAndPlay(2);}
course_btn.onRollOut = function() {this.gotoAndPlay(7);}

...и в последних кадрах анимации убери "СТОП"

Gaara
23.01.2008, 13:12
ой.. точно. спасиб.. это я неправильно с 6-м кадром определил.. думал что у меня стартовый 5-й..

а вот только зачем стопы убирать? без них неправильно работает..