编程语言
首页 > 编程语言> > javascript-从tween.js中提取补间值

javascript-从tween.js中提取补间值

作者:互联网

如果我的补间动画的运行时间为2000毫秒,而我想提取1000ms的补间数值,我该怎么做呢?我正在使用Tween.js @ http://github.com/sole/tween.js

var position = {y: 0};  

t = new TWEEN.Tween(position)
    .to({ y: 300 })
    .onUpdate( function() {
      console.log(position.y);
    });

t.start(); // correctly runs the tween and logs tweened position.y values

现在,从我可以收集的信息来看,我应该能够进行.update(tValue)并使其在给定的tValue onUpdate上记录正确的补间值.相反,position.y仅输出起始位置值.

Github页面上的第一个FAQ问题暗示了这种能力,但我似乎无法使其正常工作.

谢谢!

解决方法:

快速浏览tween.js source会发现它将其所有tweening functions保留在Tween.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);

这样的事情应该起作用.

我只是记得我前段时间也有一个相关的答案,如果您感兴趣的话,它会更多地讨论easing/tweening functions的“理论”.

标签:tween,javascript
来源: https://codeday.me/bug/20191101/1986291.html