Я хочу, чтобы мой MovieClip воспроизводился с 5 по 30 кадр, а затем останавливался. Как? - PullRequest
0 голосов
/ 01 августа 2011

Я хочу, чтобы мой MovieClip воспроизводился с 5 по 30 кадр, а затем останавливался. Как я могу это сделать?

Ответы [ 5 ]

4 голосов
/ 01 августа 2011
function playSegment(target:MovieClip, begin:int, end:int):void
{
    target.gotoAndPlay(begin);
    target.addEventListener(
        Event.ENTER_FRAME,
        function(e:Event):void
        {
            if(target.currentFrame == end)
            {
                target.stop();
                target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
            }
        }
    );
}

Затем выполните:

playSegment(your_movieclip, 5, 30);

Или, если у вас есть базовый класс / класс, настроенный для вашего MovieClip, тогда вы, конечно, можете сделать:

public function playSegment(begin:int, end:int):void
{
    gotoAndPlay(begin);
    addEventListener(
        Event.ENTER_FRAME,
        function(e:Event):void
        {
            if(currentFrame == end)
            {
                stop();
                removeEventListener(Event.ENTER_FRAME, arguments.callee);
            }
        }
    );
}

Тогда:

my_movieclip.playSegment(5, 30);
2 голосов
/ 01 августа 2011

Вы также можете использовать метод addFrameScript.

protected function addMovieClip():void{
    mc = new MovieClip();
    addChild(mc);
    mc.gotoAndPlay(5);
    mc.addFrameScript(30, frameFunction);
}

protected function frameFunction():void
{
    mc.stop();
    //clear the code by writing null script to target frame.
    mc.addFrameScript(30, null);
}

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

2 голосов
/ 01 августа 2011

Если вы хотите сделать это с кодом, попробуйте это:

myMovieClip.addEventListener(Event.ENTER_FRAME, onEnter);
myMovieClip.gotoAndPlay(5);

private function onEnter(e:Event) : void {
    if(myMovieClip.currentFrame == 30) {
        myMovieClip.stop();
        myMovieClip.removeEventListener(Event.ENTER_FRAME, onEnter);
    }
}
1 голос
/ 01 августа 2011

первый кадр: gotAndPlay (5) и в кадре 30 простая остановка ()?

Редактировать: На самом деле это больше, чем простое кодирование Flash. Таким образом, вы, возможно, не знаете, как добавить скрипт в кадр? См. Документацию по Flash для «Добавление взаимодействия».

1 голос
/ 01 августа 2011

в кадре 1 добавить тип ActionScript: gotoAndPlay(5); в кадре 30 добавить stop();

...