2012-12-12 61 views
2

哪一個最適合畫布動畫? requestAnimFrame或setInterval?用於canvas動畫的requestAnimFrame或setInterval?

+0

'setInterval'是大規模更快。 http://jsperf.com/requestanimationframe –

+0

http://jsperf.com/requestanimationframe/3,http://jsperf.com/requestanimationframe/5 – bfavaretto

+0

'requestAnimFrame'是*專用於動畫*。 'setInterval'可能只能用作後備。 – Bergi

回答

5

​​保證您的動畫在瀏覽器準備繪製新框架時正好運行。如果你使用setInterval,您運行的任何風險:

  • 使得間隔過短,在這種情況下,你消耗電池壽命表演永遠不會被顯示
  • 過於頻繁的平局操作使得時間間隔過長在這種情況下,你可以使用更短的間隔

​​可調速以更低的頻率運行時,該頁面是不可見的(可節省電池壽命)已經獲得了平滑的動畫,但setInterval一些實現這樣做(目前在Firefox和Chrome中)。

​​是從零開始構建的,意圖用於動畫; setInterval旨在做任何需要定期行動的事情。如果你正在做動畫(尤其是畫布動畫),我會建議使用​​,舊版瀏覽器可以回退到setInterval

-1

但是你可以在一個大的函數中使用的setInterval調用即加載並調用它,只有當窗口負載:

function load() 
{ 
    var intervalle = x; 
    var game= setInterval(process,intervalle); 
    ... 

} 
window.addEventListener("load",load,true); 
+2

-1:這個問題如何回答?是的,你當然可以使用'setInterval'作爲動畫,但這個答案並不能解釋爲什麼'setInterval'或'requestAnimationFrame'更好。 – apsillers