TWEEN.js TWEEN.update(time) 未按记录运行

TWEEN.js TWEEN.update(time) not behaving as documented

所以,当我阅读它时 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() 与我开始补间链的值之间的差距就越大。