我希望我的MovieClip从第5帧到第30帧播放然后停止。我怎么能这样做?
答案 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)
在第30帧添加动作脚本类型:gotoAndPlay(5);
添加stop();
答案 4 :(得分:1)
第一帧:gotAndPlay(5),第30帧是一个简单的停止()?
编辑:这实际上不仅仅是基本的Flash编码。所以你可能不知道如何将脚本添加到框架中?请参阅Flash文档“添加交互”。