问题描述
|
我想用画布上的图像做大量的动画;使用canvas元素作为图像的缓冲区是否更有利(这样我们就不必再次调整大小)?或者将img元素用作缓冲区是否更有益?
还是实际上有更好的方法,如果性能是我应该做的头等大事而我却想念的话,那必须做吗?
另外,为什么“清理”画布的操作如此缓慢?我的背景是Windows Phone 7的xna编程和“清除”整个屏幕是最快的操作之一。
另外,应该通过设置width = width来“清除”画布还是应该执行drawRect(0,0,width,height)?
解决方法
您应该将canvas元素用作已转换图像的缓冲区,并在整数坐标上对齐drawImage调用。一旦需要转换图像,软件画布的实现就会变慢(因为转换=重采样=缓慢)。
请参阅:http://jsperf.com/canvas-drawimage
清除画布,使用clearRect:http://jsperf.com/canvas-clear-speed