我一直在玩易,我发现表演开始下降。在我的例子中,Chrome需要大约3s才能达到这一点,Safari则需要25s,Firefox到处都是。
问题:
示例为了演示我正在经历的性能打击,我在一个循环上创建了一个简单的循环重绘动画,但是框架很快就开始下降。如果我恢复到纯画布API调用,那么它将恢复性能。
下面是我重新绘制的关键片段,它选择了绘制圆圈的方法:
if ( counter.fps > 60) {
circle.graphics.beginFill('green')
circle.graphics.drawCircle(0,0, w / 10)
circle.graphics.endFill();
stage.update();
} else {
context.beginPath();
context.arc(circle.x, circle.y, w / 10, 0, 2 * Math.PI, false);
context.fillStyle = "darkred";
context.fill();
}有关演示:http://jsfiddle.net/AshCoolman/5xYxM/9/,请参阅下面的“小提琴”
变量我尝试过类似的结果,
(Rough)性能时间表(OSX10.8.2在mid2012 macbook上)
Chrome v26.0.1410.43
Safari v6.0.2 (8536.26.17)
火狐v20
发布于 2013-04-10 17:33:14
EaselJS图形被保留,因此您要向Graphics队列中添加另一个循环定义的每个帧。所以,在1000次“重绘”调用之后,每次都要画1000个圆圈。
使用Graphics.clear()重置绘图队列,或者只绘制一次圆圈&移动相应的形状(建议)。
这里有一个修改过的Fiddle版本,它为我提供了一个可靠的99fps:http://jsfiddle.net/5xYxM/13/
https://stackoverflow.com/questions/15932466
复制相似问题