Javascript 在EaselJS(CreateJS)中安全处理stage元素
我有一个带有一个小动画类的应用程序。animation类创建一个画布(使用jQuery),创建一个使用该画布的Javascript 在EaselJS(CreateJS)中安全处理stage元素,javascript,performance,easeljs,createjs,Javascript,Performance,Easeljs,Createjs,我有一个带有一个小动画类的应用程序。animation类创建一个画布(使用jQuery),创建一个使用该画布的createjs.Stage元素,然后使用这个Stage元素在短时间内制作一些动画 当动画完成后,我想清理所有东西,以便新动画可以做同样的事情 使用Stage类时,需要添加一些侦听器,例如createjs.Ticker.addEventListener(Stage),您可能需要添加DomeEventListener 我试图找出如何安全地删除stage和canvas,到目前为止,我发现一些
createjs.Stage
元素,然后使用这个Stage元素在短时间内制作一些动画
当动画完成后,我想清理所有东西,以便新动画可以做同样的事情
使用Stage类时,需要添加一些侦听器,例如createjs.Ticker.addEventListener(Stage)
,您可能需要添加DomeEventListener
我试图找出如何安全地删除stage和canvas,到目前为止,我发现一些信息表明,在将stage设置为null之前,有必要将stage canvas设置为null(stage.canvas=null
)
我还在stage类上找到了一个方法:
.removeAllEventListeners()
下面是我的问题:
var animation = new Animation();
// do some stuff, call some methods on the animation object, and then:
animation = null;
我想,您必须使用jQuery.remove()
或其他方法手动从主体中移除画布,以摆脱画布.removeAllEventListeners()
是否足以调用我通常不知道如何确保所有东西都是垃圾收集的,所以欢迎任何建议 您找到过这个问题的答案吗?当var动画不再可访问时,不需要animation=null。唯一可能将画布或舞台保留在内存中的是,是否仍然附加了侦听器,或者jQuery是否保留了对它们的引用。因此,手动清除所有侦听器并同时使用jQuery.remove()就足够了。