首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从tween.js中提取补间数值

从tween.js中提取补间数值
EN

Stack Overflow用户
提问于 2012-01-20 09:13:52
回答 2查看 2.9K关注 0票数 3

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

代码语言:javascript
复制
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页面的第一个常见问题提示了这种能力,但我似乎不能让它工作。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-20 09:43:11

快速浏览一下tween.js source就会发现,它将所有的tweening functions都保存在一个Tween.Easing“名称空间”中,并且默认的宽松函数是TWEEN.Easing.Linear.EaseNone

它的轻松功能与我预期的略有不同,但一旦你知道你想要做什么,它就很容易独立于架构的其余部分使用。

代码语言:javascript
复制
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的“理论”。

票数 4
EN

Stack Overflow用户

发布于 2012-01-20 09:17:13

只需使用setTimeout()并在1000 ms之后运行一个计时器

代码语言:javascript
复制
setTimeout(function() {
  console.log(position.y);
}, 1000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8935638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档