使用 ActionScript 3.0 反向播放影片剪辑
Posted
技术标签:
【中文标题】使用 ActionScript 3.0 反向播放影片剪辑【英文标题】:Playing reverse of a MovieClip using ActionScript 3.0 【发布时间】:2018-08-10 19:29:19 【问题描述】:我在 Adobe 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 > stage 和 stopPlayReverse(); > 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 影片剪辑过渡(无按钮)