Flash - 反向播放影片剪辑?

Pro*_*cop 12 actionscript-3

当我从它鼠标输出时,我正试图让一个影片剪辑反向播放(它在mouse_over上播放).

我的动作如下:

mc.stop();
mc.addEventListener(MouseEvent.MOUSE_OVER,mover);
mc.addEventListener(MouseEvent.MOUSE_OUT,mout);

function mover(e:MouseEvent):void
{
    mc.play();
}

function mout(e:MouseEvent):void
{
   //Play in reverse
}
Run Code Online (Sandbox Code Playgroud)

我怎么做到这一点?

谢谢

sbe*_*rry 15

最好的方法是使用ENTER_FRAME事件侦听器.基本上这就是你想要做的

function mover(e:MouseEvent):void {
    stopPlayReverse();
    mc.play();
}

function mout(e:MouseEvent):void {
    this.addEventListener(Event.ENTER_FRAME, playReverse, false, 0, true);
}

function playReverse(e:Event):void {
    if (mc.currentFrame == 1) {
        stopPlayReverse();
    } else {
        mc.prevFrame();
    }
}

function stopPlayReverse():void {
    if (this.hasEventListener(Event.ENTER_FRAME)) {
        this.removeEventListener(Event.ENTER_FRAME, playReverse);
    }
}
Run Code Online (Sandbox Code Playgroud)

这将反向播放您的MovieClip,直到它到达第1帧,然后它将停止.


Pbi*_*off 5

如果动作允许,您可以使用补间(例如,如果您想要更改alpha,位置或比例).在MouseOut上,您可以为Tween调用.yoyo(),它将反向播放.

像这样的东西:

var tween:Tween;

mc.addEventListener(MouseEvent.MOUSE_OVER,mover);
mc.addEventListener(MouseEvent.MOUSE_OUT,mout);

function mover(e:MouseEvent):void
{
    tween = new Tween(obj, "alpha", None.easeNone, 1, 0, 1, true);
}

function mout(e:MouseEvent):void
{
   tween.yoyo();
}
Run Code Online (Sandbox Code Playgroud)