为了在<canvas>上管理10.000个简单的形状,我尝试了缓存作为重绘的替代。令我惊讶的是:
ImageData和canvas.{get|put}Image似乎非常缓慢。canvas.createPattern缓存模式几乎与重绘一样快。但是,由于某些原因,有些画布在缓存期间会中断。在进行了一些查找之后,每隔一段时间(每2-5次缓存查找一次),就会检索一个画布,这会导致
InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable被扔出去。我使用相同的代码来缓存不同的对象,所以我认为问题不在于缓存,而在于canvas对象的数量。
也许这也是有趣的,我是动画的形状(0,0),减少他们的大小,以及零。例如,即使矩形大小为6x3px,也会发生错误,因此不应该涉及大小大小问题。
有什么想法吗?如果没有立竿见影的想法,我将简化发布代码。谢谢你,诺比
发布于 2013-09-20 07:53:45
Ken是完全正确的-虽然我已经看到了当矩形应该仍然是6x3时的错误,但是当我将矩形动画为大小(1,1)而不是(0,0)时,错误就不再出现了。
发布于 2015-05-16 19:00:15
在我的例子中,我看到了这样的错误:如果宽度*高度= 0,那么这样的画布在drawImage期间会产生这个错误。
https://stackoverflow.com/questions/18898096
复制相似问题