首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >许多画布对象的结果是"InvalidStateError:尝试使用一个不再可用或不再可用的对象“。

许多画布对象的结果是"InvalidStateError:尝试使用一个不再可用或不再可用的对象“。
EN

Stack Overflow用户
提问于 2013-09-19 14:55:16
回答 2查看 10.6K关注 0票数 13

为了在<canvas>上管理10.000个简单的形状,我尝试了缓存作为重绘的替代。令我惊讶的是:

  • 使用ImageDatacanvas.{get|put}Image似乎非常缓慢。
  • 使用canvas.createPattern缓存模式几乎与重绘一样快。
  • 为每个形状缓存整个画布比重绘还要快。

但是,由于某些原因,有些画布在缓存期间会中断。在进行了一些查找之后,每隔一段时间(每2-5次缓存查找一次),就会检索一个画布,这会导致

代码语言:javascript
复制
InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable

被扔出去。我使用相同的代码来缓存不同的对象,所以我认为问题不在于缓存,而在于canvas对象的数量。

也许这也是有趣的,我是动画的形状(0,0),减少他们的大小,以及零。例如,即使矩形大小为6x3px,也会发生错误,因此不应该涉及大小大小问题。

有什么想法吗?如果没有立竿见影的想法,我将简化发布代码。谢谢你,诺比

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-20 07:53:45

Ken是完全正确的-虽然我已经看到了当矩形应该仍然是6x3时的错误,但是当我将矩形动画为大小(1,1)而不是(0,0)时,错误就不再出现了。

票数 4
EN

Stack Overflow用户

发布于 2015-05-16 19:00:15

在我的例子中,我看到了这样的错误:如果宽度*高度= 0,那么这样的画布在drawImage期间会产生这个错误。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18898096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档