2017-12-27 956 views
0

今天我使用TweenJS時發現了錯誤,當從socket.io服務器爲基於tick的響應設置動畫時出現問題。 我得到的位置和旋轉每1/10秒(10滴答每秒),我通過TweenJS .to()功能平滑此運動。TweenJS旋轉平滑問題

位置工作像一個魅力,但旋轉是錯誤的,當我切換0/360度左右。

服務器發送例如rotation: 350°和在下一個刻度服務器發送rotation: 10°,但我不想動畫整個340°,只是20°。 所以我想用最短的方式來動畫。 插件不工作如何supposted。

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

編輯:我發現,TweenJS被訂走最短的路爲默認值,但不是爲我工作

+0

所以我做了RotationPlugin的工作,但它不工作100%完美。即使在我改變角度的情況下,它也會在零度時被卡住。有誰知道如何修理它? – D3admau5

回答

0

有一個在TweenJS已經提供旋轉插件:https://github.com/CreateJS/TweenJS/tree/master/src/tweenjs/plugins

從文檔:

安裝後,默認情況下所有的旋轉補間將在旋轉最短方向。例如,如果您從rotation=15補間到 rotation=330,它將逆時針旋轉45度。您可以通過指定一個​​補間值來修改此行爲 。 值-1將強制逆時針旋轉,1將強制CW,並且0將 禁用該補間的該部分的插件效果。

注意,你需要最新的TweenJS(1.0.0),因爲它是沉重,因爲最後一個版本(0.6.2)重構。在早期版本中,有一個「SmartRotationPlugin」,它的工作方式也是一樣的。

+0

我兩次閱讀文檔,謝謝。版本1.0.0不包括旋轉插件。你必須下載他幷包含在tweenjs之後。但插件不工作。它一次旋轉並鎖定0°。當我嘗試在下一個勾號中旋轉時,旋轉仍然鎖定在0° – D3admau5

+0

有趣。我可以檢查出來。 – Lanny

+0

你能提供一個這個問題的例子(例如codepen或jsfiddle)。 RotationPlugin的快速測試正在爲我工​​作。 'createjs.Tween.get(箭頭,{環:-1})。向({旋轉:350},1000) \t \t \t。爲({旋轉:10},1000)。爲了({旋轉: ({rotation:350},1000).to({rotation:10},1000).to({rotation:350},1000)' – gskinner