为了简单...
如果您有一个名为“your_mc”的实例包含您的动画(库中有一个名为 your_symbol 的 MC,并且您在该实例中有一个名为“your_mc”的补间
如果MovieClip放在舞台上,你可以试试这个。
import flash.display.MovieClip;
import flash.events.MouseEvent;
var your_mc:MovieClip = your_mc;
your_mc.stop()
var clipStopped:Boolean = true;
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip);
your_mc.addEventListener(MouseEvent.MOUSE_OUT,playStopClip);
function playStopClip(e:MouseEvent):void{
switch (clipStopped) {
case false:
clipStopped = !clipStopped;
break;
case true:
clipStopped = !clipStopped;
break;
}
if (!clipStopped){
your_mc.gotoAndPlay(1);
}else{
your_mc.gotoAndStop(1);
}
}
注意这不是基于类的,应该被视为一个基本示例!
如果您想要更具体的内容,请编辑您的问题!
这里是非常基本的示例:
fla file
swf file
这不干净,所以,如果你想要更有效的东西,请编辑你的问题。
如果您想播放整个 MovieClip,只需检查 MC.currentFrame 和 MC.total 帧并添加一个布尔值来检查它。
所以 MC 不能在动画结束前停止。
最好的问候。
尼古拉斯
[编辑]
当鼠标悬停时,这会将您的 MovieClip 播放到最后...
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
var isRunning:Boolean = false;
var your_mc:MovieClip = your_mc;
your_mc.stop()
var clipStopped:Boolean = true;
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip);
function playStopClip(e:MouseEvent):void{
if(clipStopped && isRunning==false){
trace("is Running = " + !isRunning)
your_mc.gotoAndPlay(1);
clipStopped = !clipStopped;
isRunning = true
your_mc.addEventListener(Event.ENTER_FRAME,changeStatus);
}
}
function changeStatus(e:Event):void{
if (your_mc.currentFrame == your_mc.totalFrames){
isRunning = false;
clipStopped = true;
your_mc.gotoAndStop(1);
your_mc.removeEventListener(Event.ENTER_FRAME,changeStatus);
}
trace(your_mc.currentFrame + " / " + your_mc.totalFrames);
}
fla file
swf file
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
var isRunning:Boolean = false;
var your_mc:MovieClip = your_mc;
your_mc.stop()
var clipStopped:Boolean = true;
your_mc.addEventListener(MouseEvent.MOUSE_OVER,playStopClip);
function playStopClip(e:MouseEvent):void{
if(clipStopped && isRunning==false){
trace("is Running = " + !isRunning)
your_mc.gotoAndPlay(1);
clipStopped = !clipStopped;
isRunning = true
your_mc.addEventListener(Event.ENTER_FRAME,changeStatus);
}
}
function changeStatus(e:Event):void{
if (your_mc.currentFrame == your_mc.totalFrames){
isRunning = false;
clipStopped = true;
your_mc.stop();
your_mc.removeEventListener(Event.ENTER_FRAME,changeStatus);
}
trace(your_mc.currentFrame + " / " + your_mc.totalFrames);
}
fla file
swf file
如果您想将您的电影剪辑播放到最后一帧,此处不再有 MouseEvent.MOUSE_OUT。
MouseEvent.MOUSE_OVER 仅在您的电影剪辑动画完成时可用。
所以你没有给出反馈并且问题不清楚:“DownVote”
[/编辑]