greensock tween查找bezier曲线的最终旋转

时间:2016-05-11 09:13:10

标签: actionscript-3 flash actionscript greensock gsap

让我告诉你一个现在面临的情景,我有一个动画片段,它将沿着bezier曲线移动,一个按钮将开始播放(影片剪辑将沿曲线移动)和bezier点,使用绿色摇滚它具有自动旋转选项,您可以沿路径旋转影片剪辑。

所以我需要知道动画片段在播放结束时会有什么样的旋转,因为当启用自动旋转时,我在开始时的旋转将是0但是在播放的结束时间它会是什么? ?我需要在补间发生之前知道这个值,请帮忙!

2 个答案:

答案 0 :(得分:3)

当然,你可以做一些数学计算,但是让补间处理它并简单地跳到最后,读取值并再次回放可能更容易。无需创建持续0.0001秒的单独补间并等待onComplete或类似的东西 - 只需使用原始补间:

var tween:TweenMax = TweenMax.to(...); //your bezier tween
tween.progress(1); //jump to the end
var endRotation:Number = mc.rotation; //read the final rotation
tween.progress(0); //rewind back to the beginning

答案 1 :(得分:1)

有一些数学方法可以计算出来,但是你基本上需要重写整个贝塞尔运动逻辑。

快速而肮脏的方法是首先将你的movieclip alpha设置为0(或者创建一个新的空精灵)并让相同的bezier运动在0.0001秒内运行。在onComplete中检查最终的动画片段旋转并开始实际的补间。我有点hacky但它​​会起作用:)