0

我今天在使用 TweenJS 时发现了错误,在从 socket.io 服务器为我的基于刻度的响应设置动画时出现了问题。我每 1/10 秒(每秒 10 个滴答声)获得一次位置和旋转,并通过 TweenJS.to()函数平滑这个运动。

位置就像一个魅力,但是当我在 0/360 度左右切换时,旋转是错误的。

例如rotation: 350°,服务器发送和下一个刻度服务器发送rotation: 10°,但我不想动画整个 340°,只是 20°。所以我想以最短的方式从/到动画。插件无法正常工作。

小提琴:http: //jsfiddle.net/bateriecz/wmj52eqd

编辑:我发现,TweenJS 默认设置为最短路径,但不适用于我

4

1 回答 1

0

TweenJS 中已经提供了一个旋转插件:https ://github.com/CreateJS/TweenJS/tree/master/src/tweenjs/plugins

从文档:

安装后,默认情况下所有旋转补间都将沿最短方向旋转。例如,如果您从rotation=15到 补间rotation=330,它将逆时针旋转 45 度。您可以通过指定rotationDir补间值来修改此行为。值-1将强制 CCW 旋转,1将强制 CW,0并将禁用补间该部分的插件效果。

请注意,您需要最新的 TweenJS (1.0.0),因为它自上一个版本 (0.6.2) 以来已经过大量重构。在早期版本中,有一个“SmartRotationPlugin”,其工作方式相同。

于 2017-12-28T07:07:31.690 回答