如何彻底处置 EaselJS 画布?
Posted
技术标签:
【中文标题】如何彻底处置 EaselJS 画布?【英文标题】:How to completely dispose EaselJS canvas? 【发布时间】:2018-11-01 04:47:59 【问题描述】:我正在开发一个 ReactJS 应用程序,在该应用程序中我使用 EaselJS 来处理多个画布,在同一页面上,我必须根据不同的条件添加和删除不同的画布以呈现不同的视图。即使在使用以下代码删除画布来处理画布组件后
createjs.Touch.disable(this.stage);
this.stage.removeAllChildren();
this.stage.removeAllEventListeners();
this.stage.enableDOMEvents(false);
一些事件正在被触发。使用应用程序一段时间后,它开始使用大量的处理和内存。在查看了 chrome 开发人员工具中的性能选项卡后,我知道每个添加的画布都会调用一个计时器事件。检查代码后我才知道
this.stage.enableMouseOver();
正在设置一个 setInterval
计时器,即使在调用上述所有代码后也没有被删除,我找不到任何删除它的方法。
谁能帮我摆脱它。
提前致谢
【问题讨论】:
【参考方案1】:记录了enableMouseOver
方法,用于在舞台中添加和删除功能。通过传递0
作为频率,应该清除间隔。
stage.enableMouseOver(0);
来自documentation:
启用或禁用(通过传递频率 0)
和
frequency:可选参数,指定每秒广播鼠标悬停/移出事件的最大次数。设置为 0 以完全禁用鼠标悬停事件。
我对代码做了一个快速传递,它肯定会删除间隔。
【讨论】:
谢谢,我试图找到一种方法来删除它但错过了 :( 我想请求一个功能,一个功能来处理附加到画布的所有事件以正确处理它,而不是分离不同的事件个人:) 随时在github.com/CreateJS/EaselJS/issues 记录请求。干杯!以上是关于如何彻底处置 EaselJS 画布?的主要内容,如果未能解决你的问题,请参考以下文章