greenstock tween找到bezier曲线的末端旋转



让我告诉你现在面临的一个场景,我有一个沿着贝塞尔曲线移动的movieclip和一个开始播放的按钮(电影剪辑将沿着曲线移动)和贝塞尔点,我使用的是greenstock,它有一个自动旋转选项,你可以沿着路径旋转电影剪辑。

所以我需要知道电影在播放结束时会是什么旋转,因为当自动旋转启用时,我在开始时的旋转将是0,但到了播放结束时,它会是什么????我需要在青少年发生之前知道这个值,请帮忙!

当然,你可以通过数学来计算出这一切,但让青少年处理它,简单地跳到最后,读取值,然后再次倒带可能会更容易。无需创建一个持续0.0001秒的单独tween,然后等待onComplete或类似的操作-只需使用原始tween:

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

肯定有一些数学方法可以计算这一点,但基本上需要重写整个bezier运动逻辑。

一个快速而肮脏的方法是首先将movieclip alpha设置为0(或创建一个新的空精灵),并在0.0001秒内运行相同的bezier移动。在onComplete中,检查最后的movieclip旋转并开始实际的tweening。我有点生气,但它会起作用:)

最新更新