【发布时间】: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);
标签: actionscript-3 flash actionscript movieclip