请问 flash as3.0怎么做到 鼠标移开影片剪辑之后 影片剪辑仍继续播放 直到某一帧停止或最后一帧停止?

movieClip_1.stop();

movieClip_1.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);

function fl_MouseOverHandler(event:MouseEvent):void
{
movieClip_1.gotoAndPlay(1);
}
这里我鼠标滑动到影片剪辑上后,它开始循环播放了。
然后怎么才能实现 鼠标移开影片剪辑之后 影片剪辑仍继续播放 直到某一帧停止或最后一帧停止?

1、如果你的影片剪辑可以编辑(不是外载的)那么你直接在影片剪辑最后一帧加上stop();

2、如果你想要动态添加代码,那么可以使用

movieClip_1.addFrameScript(movieClip_1.totalFrames-1,fun);
function fun(){
 movieClip_1.stop();
}

此代码作用就是在movieClip_1的最后一帧执行函数fun

3、使用Event.ENTER_FRAME来检测,

movieClip_1.stop();

movieClip_1.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler);

function fl_MouseOverHandler(event:MouseEvent):void {

 movieClip_1.gotoAndPlay(1);

 if(!movieClip_1.hasEventListener(Event.ENTER_FRAME)){

  movieClip_1.addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

 }

}

function fl_EnterFrameHandler(e:Event):void{

 if(e.currentTarget.currentFrame==e.currentTarget.totalFrames){

  e.currentTarget.stop();

  e.currentTarget.removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);

 }

}

需要用到的原来代码,所以我全复制了。

 

方法多种,看具体情况选择不同的做法。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-18
只要在影片剪辑你要停的那一帧上加关键帧,然后写上stop();就可以了。
第2个回答  推荐于2017-10-18
在你的原来的代码后边加下边的代码

movieClip_1.addEventListener(MouseEvent.MOUSE_OUT, fl_MouseOutHandler);
function fl_MouseOutHandler(event:MouseEvent):void {
movieClip_1.addEventListener(Event.ENTER_FRAME,go);
function go(e:Event) {
if (movieClip_1.currentFrame == totalFrames) {
movieClip_1.gotoAndStop(1);
movieClip_1.removeEventListener(Event.ENTER_FRAME,go);
}
}
}
如果想让你的影片剪辑在第10帧触发,然后停止到第5帧。改这两行
if (movieClip_1.currentFrame == 10) {
movieClip_1.gotoAndStop(5);本回答被提问者采纳
相似回答