我正在尝试使用Actionscript 3逐渐减慢影片剪辑。我当前的代码会播放影片片段,然后突然停止并向前拨几帧。比我想要的更粗糙。
var t:Timer=new Timer(2000,1);
t.addEventListener(TimerEvent.TIMER,slowDown);
t.start();
function slowDown(e:TimerEvent):void {
if (currentFrame==totalFrames) {
gotoAndStop(1);
} else {
gotoAndStop(currentFrame+1);
}
}
Timer类至少是正确的方向吗?感谢。
答案 0 :(得分:3)
听起来像你想要使用补间引擎的力量 - 那里有很多,但我最喜欢的是Greensock TweenMax。
以下代码将在MovieClip的播放头逐渐减慢(缓和)时播放,因为它接近播放结束:
import com.greensock.*;
import com.greensock.easing.*;
TweenMax.to(myMovieClip, 2, { frame: myMovieClip.totalFrames, ease: Expo.easeOut });
答案 1 :(得分:0)
如果您只想简单地轻松访问已知位置,可以在enterframe上使用:
speed = 0.2; // Somewhere between 0 and 1
x = (targetX - x) * speed;
您可以随时更改targetX,它只会轻松实现该值。您可以为任何财产执行此操作。