2016-06-13 106 views
1

我有一個requesetAnimationFrame的動畫當我重放它時,它變得越來越快,直到它變得不可見。JavaScript:requestAnimateFrame獲得更快

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

可能重複[控制fps與requestAnimationFrame?](http://stackoverflow.com/questions/19764018/controlling-fps-with-requestanimationframe) – Li357

+0

是的,回答!謝謝 ! – unfoudev

回答

2

您可能多次撥打animation()(例如,每當單擊一個按鈕時)。

每次調用animation()開始新的重複requestAnimationFrame() - >animation() - >requestAnimationFrame() - >animation() - > ...序列。

E.g。如果您撥打animation()兩次,則會有兩個此類序列在運行,您的幀率會翻倍。

您需要在發送新請求之前取消當前正在進行的動畫幀請求。看到How to stop a requestAnimationFrame recursion/loop?