从setInterval迁移到requestAnimationFrame

时间:2014-01-20 09:50:16

标签: javascript animation requestanimationframe

我正在尝试将一些基于setInterval的旧动画迁移到requestAnimationFrame,但是我的updateState函数需要一些参数,我无法理解如何使用requestAnimationFrame传递它们。以下是旧代码如何调用绘图函数的示例:

var interval = setInterval(function(){
     oldValue < newValue ? updateState(oldValue += max/100) : clearInterval(interval);
},16);

rAF的所有例子都显示它使用如下:

function updateState() {
    requestAnimFrame( updateState );
}

updateState();

如何将参数传递给updateState函数?

1 个答案:

答案 0 :(得分:1)

您可以使用setInterval执行相同的操作,将您对updateState的调用放在闭包中。

function updateState() {
    requestAnimFrame( function(){
        if( oldValue < newValue ) {
            updateState(oldValue += max/100);
        }
    });

    // The rest of your code
}

updateState();