使用 ActionScript 3.0 反向播放影片剪辑

Posted

技术标签:

【中文标题】使用 ActionScript 3.0 反向播放影片剪辑【英文标题】:Playing reverse of a MovieClip using ActionScript 3.0 【发布时间】:2018-08-10 19:29:19 【问题描述】:

我在 Adob​​e Animate 中制作了动画。我希望它反向播放。我尝试反转帧,但它有点搞砸了我的动画。所以我决定为它写一个代码。

我尝试参考这篇文章的代码: Flash - Play movie clip in reverse?

只要我的鼠标不在 MovieClip 上,这会使我的动画反向播放。我不太熟悉修改代码以使动画出现并循环反转的编码,即使没有将鼠标悬停。

这是代码:

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

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

我希望mout 直接在舞台上工作并循环,而不是停止。我该怎么做?

【问题讨论】:

this > stagestopPlayReverse(); > mc.gotoAndStop(mc.totalFrames); 另外,第一行,订阅 stage,而不是 mc “我希望 mout 直接在舞台上工作”是什么意思? @BadFeelingAboutThis 我希望该事件不是 MouseEvent,而是一个永远在舞台上运行的正常事件,而不是由鼠标操作触发。 @Organis 谢谢你的工作。我首先让 mc 先到最后一帧: mc.gotoAndStop("Last");然后添加:stage.addEventListener(Event.ENTER_FRAME,mout);并删除: mc.addEventListener(MouseEvent.MOUSE_OVER,mover); mc.addEventListener(MouseEvent.MOUSE_OUT,mout); 【参考方案1】:

我首先让 mc 先到最后一帧:mc.gotoAndStop("Last");

然后补充:

stage.addEventListener(Event.ENTER_FRAME,mout); 

并删除:

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

【讨论】:

以上是关于使用 ActionScript 3.0 反向播放影片剪辑的主要内容,如果未能解决你的问题,请参考以下文章

在Adobe Animate ActionScript 3.0中循环

Flash Actionscript 3.0 影片剪辑过渡(无按钮)

如何在 actionscript 3.0 中为音乐播放器创建 EASY 自定义搜索栏

ActionScript 3.0复杂的mp3播放器[关闭]

ActionScript 3.0 套接字无法重新连接

动画未在 actionscript 3.0 (flash cc) 中启动