Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Событие окончания MovieClip (http://www.flasher.ru/forum/showthread.php?t=147286)

Abdilxamidov 01.12.2010 10:04

Событие окончания MovieClip
 
Вставляю на основную сцену программно мувик из, допустим, 30 кадров.
Подскажите, пожалуйста, существует ли событие окончания проигрывания мувика Mc.
Т.е. я хочу после того как до конца проиграется этом мувик загрузить следующий

Код AS3:

Mc= new My_mc;
stage.addChild(Mc);

Спасибо.

КорДум 01.12.2010 10:20

Ну либо addFrameScript, либо enterFrame вкупе с currentFrame и totalFrames.

goodguy 01.12.2010 11:13

Не совсем понимаю, зачем нужна подобная схема, но раз уж нужна, то: на последнем кадре каждого мувиклипа добавить строчку:
Код AS3:

dispatchEvent(new Event="finish");

А на главной шкале к этим мувикам добавить слушатели:
Код AS3:

my_movie_clip.addEventListener("finish", processNextMovieClip, false, 0, true);


dimarik 01.12.2010 14:14

Цитата:

Сообщение от goodguy (Сообщение 953864)
Не совсем понимаю, зачем нужна подобная схема, но раз уж нужна, то: на последнем кадре каждого мувиклипа добавить строчку:
Код AS3:

dispatchEvent(new Event="finish");


Я тоже не понимаю, зачем писать код в кадрах. addFrameScript приятственнее выглядит.

Genzo 01.12.2010 17:38

Код AS3:

this.addEventListener(Event.ENTER_FRAME , checkFinish);
 
private function checkFinish(e:Event)
                {
                        if(e.target.currentFrame == e.target.totalFrames)
                        {
                                e.target.removeEventListener(Event.ENTER_FRAME , checkFinish);
                                e.target.stop();
                                this.dispatchEvent( ************* );
                        }
                }


goodguy 01.12.2010 17:43

Цитата:

Сообщение от dimarik (Сообщение 953914)
Я тоже не понимаю, зачем писать код в кадрах. addFrameScript приятственнее выглядит.

Дело вкуса. Работать будет так же.

Котяра 01.12.2010 19:00

Код AS3:

mc.addFrameScript(mc.totalFrames-1,onEnd);


Abdilxamidov 01.12.2010 19:03

Цитата:

Сообщение от Genzo (Сообщение 953992)
Код AS3:

this.addEventListener(Event.ENTER_FRAME , checkFinish);
 
private function checkFinish(e:Event)
                {
                        if(e.target.currentFrame == e.target.totalFrames)
                        {
                                e.target.removeEventListener(Event.ENTER_FRAME , checkFinish);
                                e.target.stop();
                                this.dispatchEvent( ************* );
                        }
                }


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

Genzo 02.12.2010 11:27

Код AS3:

Mc= new My_mc;
stage.addChild(Mc);
 
Mc.addEventListener(Event.ENTER_FRAME , checkFinish);
Mc.gotoAndPlay(1);
 
private function checkFinish(e:Event)
                {
                        if(e.target.currentFrame == e.target.totalFrames)
                        {
                                e.target.removeEventListener(Event.ENTER_FRAME , checkFinish);
                                e.target.stop();
                                //ВСЕ ТУТ КОНЕЦ МУВИКЛИПА ,делай например
                                stage.removeChild(e.target);
                                stage.addChild(new MC2());..................
 
                        }
                }



Часовой пояс GMT +4, время: 06:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.