【问题标题】:Pause after loop in TweenJS在 TweenJS 中循环后暂停
【发布时间】:2012-04-24 23:28:16
【问题描述】:

我希望你们中的一些人使用过 tween.js(create.js 库套件的一部分)。

我有一个 JS Fiddle 向您展示我的问题:http://jsfiddle.net/qyp8Y/1/

我在每个 8 步循环后看到一个暂停,这不应该存在。

有人可以看看它并告诉我我做错了什么吗?

谢谢!

【问题讨论】:

    标签: javascript tween


    【解决方案1】:

    当然,让我们逐步执行一些代码:

    for (i = 0; i <= 8; i++) {
        t.to({
            rotation: 45 * i
        }, 1000, Ease.elasticOut).wait(200);
    }
    

    这是您在该循环中创建的值:

    i : rotation 
    0 : 0
    1 : 45
    2 : 90
    3 : 135
    4 : 180
    5 : 225
    6 : 270
    7 : 315
    8 : 360
    

    请注意,对于您的目的,0 和 360 是相同的值。这意味着当循环从头开始时,它会在一整秒内从 360 过渡到 0(或无处)。

    您的对象从旋转 0 开始,您无法摆脱到 360 的补间。但是,您可以通过从 45 的补间开始(从 1 开始)来删除多余的 0/360 补间

    这个改变导致了这个(注意:我也改变了轻松,所以我可以更好地看到它):

    for (i = 1; i <= 8; i++) {
        t.to({
            rotation: 45 * i
        }, 1000, Ease.quadInOut).wait(200);
    }
    

    当然,接下来要解决的问题是如何让齿轮旋转但又不会失去正确的光照/阴影方向。我会把它留给你。

    更新:我通过您提交的 github 问题找到了这个。

    【讨论】:

    • 史诗,非常感谢!齿轮是我在谷歌缓存中能找到的最简单的齿轮,我真正的齿轮可能会使用我从 Inkscape 中的 gears.py 扩展中窃取的代码在 JS 中生成。 :) 我刚刚想出了如何以随机角度将齿轮彼此相邻放置,并具有良好的互锁齿。 (但现在只使用一种尺寸的齿轮,不同的齿轮比会让这更有趣。)
    猜你喜欢
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 2020-04-15
    相关资源
    最近更新 更多