动画循环的基本语法?

时间:2010-03-07 13:52:04

标签: animation loops pseudocode language-agnostic

我知道jQuery,例如,可以做各种动画。我也知道,在动画的核心,我必须有一些循环来做动画。这种循环的例子是什么?

理想情况下,完整答案应回答以下问题:

  • 有效动画递归的基本语法是什么,它可以一次为特定对象的单个属性设置动画效果?该函数应该能够改变其目标对象和对象的属性。
  • 应该采用什么参数/参数?
  • 重复循环的好处是什么?几毫秒? (这应该是函数的参数/参数吗?)

记住:

  • 答案不一定是语言特定的,但如果您使用特定语言书写,请指明哪一个。
  • 错误处理是一个优点。 {对于我们的目的而言,没有什么比做一些奇怪的动画更令人恼火的了,比如中途停止。}

谢谢!

1 个答案:

答案 0 :(得分:1)

通常(至少对于jQuery)这不是在循环中完成的,而是在一系列回调中完成的。

pseudojavascript:

function startAnimation(element, endPosition, duration) {
    var startPosition = element.position;
    var startTime = getCurrentTime();
    function animate() {
        var timeElapsed = getCurrentTime() - startTime;
        if (timeElapsed > duration) {
            element.position = endPosition;
            stopTimer();
        } else {
            // interpolate based on time
            element.position = startPosition +
                (endPosition - startPosition) * timeElapsed / duration;
        }
    }
    startRepeatingTimerWithCallbackAndInterval(animate, 1.0 / 30.0);
}

也可以使用对象来存储起始数据而不是闭包。

这并没有完全回答问题中的所有要点,但这是一个起点。