Actionscript 3 将鼠标悬停在屏幕上,将电影剪辑完全播放
在AdobeFlash和ActionScript3.0中,我在按钮中有一个movieclip。我想在鼠标悬停时播放整个电影剪辑。 然而,movieclip只在鼠标结束前播放。如果鼠标在那里,我想把电影剪辑一直播放到最后 感谢您的帮助。 我发现了一个博客,但它只对AS2有效。这就是我想做的,但对于AS3: 我是flash的noob,我不知道该分享什么来解决这类问题。我会提供解决问题所需的任何东西 谢谢你让它变得简单。。。 如果有一个名为“your_mc”的实例包含动画(库中有一个名为your_符号的mc,实例中有一个名为“your_mc”的tween) 如果电影剪辑放在舞台上,你可以试试这个Actionscript 3 将鼠标悬停在屏幕上,将电影剪辑完全播放,actionscript-3,flash,movieclip,Actionscript 3,Flash,Movieclip,在AdobeFlash和ActionScript3.0中,我在按钮中有一个movieclip。我想在鼠标悬停时播放整个电影剪辑。 然而,movieclip只在鼠标结束前播放。如果鼠标在那里,我想把电影剪辑一直播放到最后 感谢您的帮助。 我发现了一个博客,但它只对AS2有效。这就是我想做的,但对于AS3: 我是flash的noob,我不知道该分享什么来解决这类问题。我会提供解决问题所需的任何东西 谢谢你让它变得简单。。。 如果有一个名为“your_mc”的实例包含动画(库中有一个名为your_符号
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 frames并添加一个布尔值即可。
因此,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);
}
如果您想将电影剪辑播放到最后一帧,请不要再使用MouseEvent.MOUSE_
MouseEvent.MOUSE_OVER仅在电影剪辑动画完成时可用
所以你没有给出反馈,问题也不清楚:“否决票”
[/EDIT]您可以从显示您现在拥有的代码开始。该按钮具有状态,一旦您将鼠标移出,该按钮会将“over”状态变回“up”状态,从而丢弃“over”状态下的所有内容(我猜这是您想要播放的剪辑)。您需要先将电影剪辑从按钮中拉出,然后编写按钮和剪辑行为的脚本。@newron,请编辑您的问题。!没有“向下投票”,反正这个时间间隔已经结束了:(哈哈,我不知道为什么我对这么基本的答案投了“向上投票”:我可以知道你的伪密码吗?反正是THX,但这真的很基本!@newron这个答案解决了你的问题吗?你需要更详细的答案吗?展示你的代码,但这真的很容易解决这个问题!;)如果你不给出反馈,就很难帮助你了@newron
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);
}