2013-06-04 61 views
0

Check this Code它採用 「animation.repeat」 簡單raphael.js動畫吃掉100%的CPU

window.onload = function(){ 
var paper = Raphael(0,0,1000,1000); 

var path1 = "M67,100 C67,180 200,180 200,100 C190,095 177,095 167,100 C157,105 143,105 133,100 C123,095 110,095 100,100 C90,105 77,105 67,100z";  
var path2 = "M67,100 C67,180 200,180 200,100 C190,105 177,105 167,100 C157,095 143,095 133,100 C123,105 110,105 100,100 C90,095 77,095 67,100z"; 
var bowl = paper.path(path1).attr({"fill":"black"}); 

var anim = Raphael.animation({ 
"50%" : {path:path2}, 
"100%" : {path:path1} 
},1000); 

bowl.animate(anim.repeat(Infinity)); 
}; 

讓它運行一段時間,CPU使用率爬上高達100%之後。誰能解釋爲什麼?我怎樣才能避免這種情況?

+1

你使用什麼瀏覽器/操作系統?我沒有得到您在Chrome上的64位Windows 8下描述的CPU使用率結果。 –

+0

64位Win 8 Pro上的Chrome和Firefox –

+0

多長時間? – Neil

回答

1

我解決了這個問題,使兩個函數和使用回調來調用對方,從而創建一個無限循環。

我想anim.repeat(Infinity)正在創造動畫的許多副本,從而減慢了CPU。

+0

您可以發佈您的解決方案的例子嗎?我看到了同樣的問題 – sparkplug