頁面中多次使用TWEEN.update()的坑
tween.js就不再介紹了。這次只關心這個update()方法。
tween.js中文文檔: https://github.com/tweenjs/tween.js/blob/master/README_zh-CN.md
function animate() {
requestAnimationFrame(animate);
TWEEN.update();
}
這個update方法是全局的,如果頁面中多個canvas的,多個三維場景都使用了tween,就會出現了多個update方法。會更新多次,導致動畫結果異常。搞不懂,tween爲什麼會有這種設計,整個window中就一個TWEEN。
之前每個組件都用到tween動畫,然後放在一個頁面組成大屏。開發了好久才遇到這個bug,真的很難受。
研究了一下發現可以用組來解決這個問題new TWEEN.Group();
,在每個組件中都新建一個組,然後把動畫都加載到這個組中,更新的時候就只更新組,tweenGroup.update()。禁止頁面中出現TWEEN.update()。
tween.js做差值動畫已經習慣,看看有沒有其他的合適的替代品。