使用“animation.repeat”的简单raphael.js动画吃掉100%的cpu

时间:2013-06-04 19:04:04

标签: javascript html raphael

Check this Code

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 个答案:

答案 0 :(得分:1)

我通过制作两个函数并使用回调来相互调用来解决问题,从而创建了一个无限循环。

我认为anim.repeat(Infinity)正在创建动画的许多副本,从而减慢了CPU的速度。