因此,当我阅读here时,TWEEN.update(#)应该在#右边渲染动画的帧?因此,如果我运行TWEEN.update(100),则每次运行TWEEN.update(100)时,帧应为100。

我遇到的问题是,每次运行它时,此更新函数似乎都将100渲染得越来越早。因此,第一次以100动画的帧看起来是正确的,但是如果我再次运行它,它看起来像是在第60帧的某个位置,下一次看起来是在它的20左右,直到动画元素位于该帧的开始。补间并等待一段时间(随着时间的增加),我运行环境的时间越长。

之前有人遇到过吗?我使用的变量与时间IRL不直接相关,所以我的动画函数看起来像这样:

animate(){
timeStep += variableControllingSpeed;
TWEEN.update(timeStep);
}


我有处理该速度变量的UI。

有任何想法吗?

最佳答案

固定,如果您使用.update(#)手动设置动画帧,请确保将参数传递到各个补间的.start()函数中。否则,补间的经过变量变为负数。

就我而言,我每次切换要运行的补间时都会启动补间,因此当您运行.start()函数时,它将使用您传递的起始值或获取window.performance.now() ,所以它运行的时间越长,window.performance.now()与我从其开始补间链的值之间的差距就越大。

关于javascript - TWEEN.js TWEEN.update(time)的行为与所记录的不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37952404/

10-12 12:57