Actionscript 3 将鼠标悬停在屏幕上,将电影剪辑完全播放

Actionscript 3 将鼠标悬停在屏幕上,将电影剪辑完全播放,actionscript-3,flash,movieclip,Actionscript 3,Flash,Movieclip,在AdobeFlash和ActionScript3.0中,我在按钮中有一个movieclip。我想在鼠标悬停时播放整个电影剪辑。 然而,movieclip只在鼠标结束前播放。如果鼠标在那里,我想把电影剪辑一直播放到最后 感谢您的帮助。 我发现了一个博客,但它只对AS2有效。这就是我想做的,但对于AS3: 我是flash的noob,我不知道该分享什么来解决这类问题。我会提供解决问题所需的任何东西 谢谢你让它变得简单。。。 如果有一个名为“your_mc”的实例包含动画(库中有一个名为your_符号

在AdobeFlash和ActionScript3.0中,我在按钮中有一个movieclip。我想在鼠标悬停时播放整个电影剪辑。 然而,movieclip只在鼠标结束前播放。如果鼠标在那里,我想把电影剪辑一直播放到最后

感谢您的帮助。 我发现了一个博客,但它只对AS2有效。这就是我想做的,但对于AS3:

我是flash的noob,我不知道该分享什么来解决这类问题。我会提供解决问题所需的任何东西

谢谢你让它变得简单。。。 如果有一个名为“your_mc”的实例包含动画(库中有一个名为your_符号的mc,实例中有一个名为“your_mc”的tween)

如果电影剪辑放在舞台上,你可以试试这个

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);
}