JavaScript:requestAnimateFrame变得更快

时间:2016-06-13 19:15:51

标签: javascript

我有一个带有requesetAnimationFrame的动画当我重放它时,它变得越来越快,直到它变得不可见。

function tirer(){

    var missile=document.getElementById("missile");
    var currt= missile.currentStyle ||window.getComputedStyle(missile);
    if ( parseInt(currt.bottom)<700)
    missile.style.bottom=parseInt(missile.style.bottom)+20+"px";
    else
    alert ( "in top");


}
function animation (){
    tirer();
    requestAnimationFrame(animation);

}

我怎样才能让它保持稳定,恒定的速度?

1 个答案:

答案 0 :(得分:2)

您可能会多次拨打Memes = Memes + CompBot + CompTop + CompMid; (例如,无论何时点击按钮)。

每次拨打animation()都会重新开始animation() - &gt; requestAnimationFrame() - &gt; animation() - &gt; requestAnimationFrame() - &gt; ...序列。

电子。 G。如果你拨打animation()两次,你的两个序列就会运行,你的帧率就会翻倍。

您需要在发送新请求之前取消当前正在进行的动画帧请求。见How to stop a requestAnimationFrame recursion/loop?