【发布时间】:2011-09-20 13:34:38
【问题描述】:
我正在使用 TweenLite 旋转一个对象,但是我希望该持续时间基于旋转距离,而不是设置的持续时间,其中 180 度 = 3 秒 90 = 1.5 等等。
这是我寻找旋转距离的尝试:
var time:Number = Math.abs(Math.atan2(Math.sin(angle-wheelObj.rotation),Math.cos(angle-wheelObj.rotation));
TweenLite.to(wheelObj, time, {shortRotation:{rotation:angle}, ease:Expo.easeOut, onComplete:rotateWheel, onCompleteParams:[target]});
TweenLite.to(carObj, time, {shortRotation:{rotation:angle}, ease:Expo.easeOut});
这只是行不通,当旋转很小时时间有时很长,而当旋转很大时有时时间很短,所以有人知道更好的方法吗?
注意事项:
angle = 目标旋转
wheelObj.rotation = 当前旋转。
【问题讨论】:
-
我真的不明白你的第一行 - 但你为什么不做一个
var time = (angle-wheelObj.rotation)*timePerDegree? -
@pkyeck 因为角度可以大于或小于旋转(它也使用负角度和其他东西......非常奇怪)。
标签: flash actionscript-3 actionscript