首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tween.js重复

Tween.js重复
EN

Stack Overflow用户
提问于 2018-03-13 04:24:54
回答 2查看 569关注 0票数 0

在tween.js中,有没有一种内置的方法来知道补间何时重新启动?或者是知道你当前在哪个# repeat上的一种方式?

代码语言:javascript
复制
          var foo = {}// some object
          var bar = {}// some other object

          var tween = new TWEEN.Tween(foo, fooGroup);

          tween.to(bar, 8000)
            .interpolation(TWEEN.Interpolation.CatmullRom)
            .repeat(100)
            //.onRestart(()=>{ 
            // not a real method but it will be soon 
            // if someone doesn't have a better idea
            //})
            .onComplete(()=>{
              console.log('tween done');// only fires once when tween has
                                        // repeated 100 times (which is expected)

            })
            .onUpdate(()=>{
              // do some stuff where I'd like to
              // know if the tween just reset or not
            })
            .easing(TWEEN.Easing.Cubic.InOut)
            .start()
EN

回答 2

Stack Overflow用户

发布于 2018-03-13 04:39:18

补间对象上有一个_repeat属性,该属性在每次调用update时都会递减,因此这或多或少是有效的:

代码语言:javascript
复制
var cnt = 100 // or whatever the # of repeats is
tween.onUpdate(() => {
  if (tween._repeat !== cnt) {
    cnt = tween._repeat;
    console.log('restarting..');
  }
});
票数 0
EN

Stack Overflow用户

发布于 2020-08-28 19:15:47

是的,tween.js可以通过.onRepeat(function)在everyRepeat上发出事件。

您可以在everyRepeat上增加一个计数器,以跟踪重复索引。

补间文档提到:Tween doc

当补间刚完成一次重复并将开始另一次重复时,将执行

onRepeat。补间对象作为第一个参数传入。

代码语言:javascript
复制
var foo = {} // some object
var bar = {} // some other object
let rCount = 0
var tween = new TWEEN.Tween(foo, fooGroup);

tween.to(bar, 8000)
    .interpolation(TWEEN.Interpolation.CatmullRom)
    .repeat(100)
    .onRepeat((info) => {
        // info display bar on repeat start
        rCount++
        // other stuff...
    })
    .onComplete(() => {
        console.log('tween done'); // only fires once when tween has
        // repeated 100 times (which is expected)

    })
    .onUpdate(() => {
        // do some stuff where I'd like to
        // know if the tween just reset or not
    })
    .easing(TWEEN.Easing.Cubic.InOut)
    .start()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49243854

复制
相关文章

相似问题

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