在Adobe Flash和ActionScript 3.0中,我在一个按钮中有一个movieclip。我想在鼠标悬停时播放整个影片剪辑。 但是,只有鼠标结束才能播放动画片段。如果鼠标在那里我想播放影片剪辑直到最后。
感谢任何帮助。 我发现了一个博客,但它仅适用于AS2。这是我想要做的,但使用AS3:EchoEcho
我是闪光灯的菜鸟,我不知道要分享什么样的问题。我将提供解决问题所需的一切
由于
答案 0 :(得分:1)
简化...... 如果您有一个名为“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);
}
}
注意这不是基于类的,应该被视为一个基本的例子! 如果您想要更具体的内容,请编辑您的问题!
这里真的是基本的例子:
这不干净,所以,如果您想要更高效的话,请编辑您的问题。 如果要播放整个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);
}
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);
}
如果你想将你的电影剪辑播放到最后一帧,不再有MouseEvent.MOUSE_OUT。
MouseEvent.MOUSE_OVER仅在您的影片剪辑动画完成时可用。
因为你没有提供反馈,问题不明确:“DownVote”
[/编辑]