我想在画布上制作大量带动画的动画;使用canvas元素作为图像的缓冲区更有利(这样我们就不必再调整大小)或者将img元素用作缓冲区更有利吗?
或者实际上是否有一种更好的方法,如果性能是我应该做的最重要的事情而且我缺少必须做的事情?
另外,为什么“清理”画布这么慢的操作呢?我的背景是针对Windows Phone 7的xna编程,“清除”整个屏幕是最快的操作之一。
另外,我应该通过设置 width = width 来“清除”画布,还是应该执行 drawRect(0,0,width,height)?
答案 0 :(得分:1)
您应该使用canvas元素作为转换后图像的缓冲区,并将drawImage调用与整数坐标对齐。一旦需要变换图像,软件画布实现就会变慢(因为transforming = resampling = slow。)
请参阅:http://jsperf.com/canvas-drawimage
清除画布,使用clearRect:http://jsperf.com/canvas-clear-speed