我希望我的MovieClip从第5帧到第30帧播放然后停止。怎么样?

时间:2011-08-01 08:10:46

标签: flash actionscript-3 frame

我希望我的MovieClip从第5帧到第30帧播放然后停止。我怎么能这样做?

5 个答案:

答案 0 :(得分:4)

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);

答案 1 :(得分:2)

如果你想用代码来做,试试这个:

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);
    }
}

答案 2 :(得分:2)

您也可以使用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);
}

希望这有帮助。

答案 3 :(得分:1)

第1帧

在第30帧添加动作脚本类型:gotoAndPlay(5);添加stop();

答案 4 :(得分:1)

第一帧:gotAndPlay(5),第30帧是一个简单的停止()?

编辑:这实际上不仅仅是基本的Flash编码。所以你可能不知道如何将脚本添加到框架中?请参阅Flash文档“添加交互”。