Воспроизвести видеоклип, подождать до конца основного фильма и перезапустить - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть флэш-баннер, который содержит фрагмент ролика с анимированным логотипом.Я хочу, чтобы анимация логотипа запускалась только в начале основного «фильма».В настоящее время я должен определить длину всего фильма (например, 500 кадров), а затем вставить ключевой кадр в 500-й кадр клипа с логотипом.Я знаю, что должен быть правильный способ сделать это ... Я добавляю имя фрейма в конце основной временной шкалы и как-то в AS в клипе логотипа говорю "когда вы достигаете X goToAndPlay (1);"?

1 Ответ

1 голос
/ 18 ноября 2011

Ну, вы не можете просто сделать «когда сделаешь это, сделай это».

Есть два способа, которые приходят мне в голову прямо сейчас. Во-первых (более) правильно добавить dispatchEvent( new Event(__EVENT_TYPE__)); к кадру, на котором вы хотите остановиться, а затем добавить слушателя к мувиклипу, например:

mc1.addEventListener(Event.__EVENT_TYPE__, stopPlayback);
function stopPlayback( e:Event ):void{
   mc1.stop();
   mc1.removeEventListener(Event.__EVENT_TYPE__, stopPlayback);
}

, чтобы при отправке события воспроизведение прекращалось. Например, вы можете использовать Event.COMPLETE или создать собственное событие.

Второй способ - добавить прослушиватель событий Event.ENTER_FRAME, чем проверить, вернулись ли мы к первому кадру, и если мы зациклились, вернемся к последнему кадру и остановимся, удалим прослушиватель событий и все готово. Также нам нужно где-то хранить последний кадр, на котором мы были, чтобы мы знали, что нам нужно вернуться.

mc1.addEventListener(Event.ENTER_FRAME, onEF);
var lastFrame:int = 0;
function onEF( e:Event ):void{
    if(mc1.currentFrame == 1){
        mc1.removeEventListener(Event.ENTER_FRAME, onEF);
        mc1.gotoAndStop(lastFrame);
    }
    lastFrame = mc1.currentFrame;
}

используйте второй вариант, только если вы не можете добавить отправку события в видеоклип (или простой вызов stop ();))

Надеюсь, это поможет

Приветствие.

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