Javascript 从tween.js中提取tween值

Javascript 从tween.js中提取tween值,javascript,tween,Javascript,Tween,如果我有一个运行时间为2000ms的tween,并且我想在1000ms时提取tween值,我将如何进行这项工作?我正在使用Tween.js@ 现在,根据我所能收集到的信息,我应该能够.update(tValue)并让它在给定的tValue onUpdate上记录正确的tweened值。相反,position.y只输出起始位置值 Github页面的第一个常见问题提示了这种能力,但我似乎无法让它发挥作用 谢谢 只需使用setTimeout()并使计时器在1000毫秒后运行即可: setTimeout

如果我有一个运行时间为2000ms的tween,并且我想在1000ms时提取tween值,我将如何进行这项工作?我正在使用Tween.js@

现在,根据我所能收集到的信息,我应该能够.update(tValue)并让它在给定的tValue onUpdate上记录正确的tweened值。相反,position.y只输出起始位置值

Github页面的第一个常见问题提示了这种能力,但我似乎无法让它发挥作用

谢谢

只需使用
setTimeout()
并使计时器在
1000毫秒后运行即可:

setTimeout(function() {
  console.log(position.y);
}, 1000);
快速查看会发现,它将其所有内容保留在
Tween.Easing
的“名称空间”中,默认的Easing函数是
Tween.Easing.Linear.EaseNone

它的放松功能与我所期望的略有不同,但一旦您知道要做什么,就可以独立于体系结构的其余部分轻松使用

function getTweenedValue(startVal, endVal, currentTime, totalTime, tweener) {
    var delta = endVal - startVal;
    var percentComplete = currentTime/totalTime;
    tweener ||= TWEEN.Easing.Linear.EaseNone;

    return tweener(percentComplete) * delta + startVal
}

var val = getTweenedValue(0,300,1000,2000);
这样的办法应该行得通



我刚刚想起我刚才也有一个相关的答案,它更多地讨论了“如果你感兴趣的话”的“理论”。

我实际上不想运行tween,只是在给定的时间提取值。啊。用
t.update(1000)
替换
t.start()
时会发生什么?它运行.onUpdate,但位置.y值不变。我可以使用不同的时间值多次运行.update(),它的响应完全相同。试试这个:
t.\u easingFunction(1000)
。它吐出了什么?你期待的是什么样的放松功能?这对我来说非常有用。谢谢@Caseyee很多easing框架都有签名接口,看起来更像我的助手
GetWeenedValue
,另一个答案也谈到了这一点。
function getTweenedValue(startVal, endVal, currentTime, totalTime, tweener) {
    var delta = endVal - startVal;
    var percentComplete = currentTime/totalTime;
    tweener ||= TWEEN.Easing.Linear.EaseNone;

    return tweener(percentComplete) * delta + startVal
}

var val = getTweenedValue(0,300,1000,2000);