我正在开发一个ReactJS应用程序,其中使用EaselJS处理多个画布,在同一页面上,我必须根据不同条件添加和删除不同的画布以呈现不同的视图。即使使用以下代码删除画布后,也要放置画布组件
createjs.Touch.disable(this.stage);
this.stage.removeAllChildren();
this.stage.removeAllEventListeners();
this.stage.enableDOMEvents(false);
一些事件正在被触发。使用应用程序一段时间后,它开始使用大量的处理和内存。在查看了chrome开发人员工具中的“性能”标签后,我才知道每个添加的画布都会调用一个计时器事件。检查代码后,我知道
this.stage.enableMouseOver();
正在设置一个
setInterval
计时器,即使调用了上述所有代码,该计时器也不会被删除,我找不到任何将其删除的方法。谁能帮我摆脱它。
提前致谢
最佳答案
记录了enableMouseOver
方法,可以从舞台上添加和删除功能。通过传递0
作为频率,应清除间隔。
stage.enableMouseOver(0);
从documentation:
启用或禁用(通过传递0频率)
和
频率:可选参数,指定每秒广播鼠标悬停事件的最大次数。设置为0可完全禁用鼠标悬停事件。
我对代码进行了快速传递,它肯定消除了间隔。
关于javascript - 如何完全处置EaselJS canvas?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50467308/