我今天在使用TweenJS时发现了bug,这是从socket.io服务器动画我的基于tick的响应时的问题。
我每隔1/10秒(每秒10个滴答)获得位置和旋转,并通过TweenJS .to()
函数平滑此移动。
定位像魅力一样工作,但当我在0/360度左右转换时旋转是错误的。
服务器发送例如rotation: 350°
并在下一个tick服务器发送rotation: 10°
,但我不想要整个340°,只有20°的动画。
所以我希望通过最短的方式来自/到BUT的动画。
插件不起作用的方式。
答案 0 :(得分:0)
TweenJS中已经提供了一个旋转插件:https://github.com/CreateJS/TweenJS/tree/master/src/tweenjs/plugins
来自文档:
安装后,默认情况下,所有旋转补间都将在旋转中旋转 最短的方向。例如,如果您从
rotation=15
补间到rotation=330
,它将逆时针旋转45度。您可以 通过指定rotationDir
补间值来修改此行为。一个 值-1
将强制CCW轮换,1
将强制CW,0
将强制CW 禁用补间的那部分的插件效果。
请注意,您需要最新的TweenJS(1.0.0),因为它自上一版本(0.6.2)以来经过了大量重构。在早期版本中,有一个" SmartRotationPlugin",它的工作方式相同。