1 javascript garbage-collection event-handling javascript-events easeljs
EaselJS的removeChild方法(Stage的一部分)是否也处理附加到该子节点的eventListener的清理?或者您必须在删除孩子removeEventListener之前手动删除孩子的事件监听器吗?
例如:
stage = new createjs.Stage(canvas);
circle = new createjs.Shape();
circle.graphics.beginFill("#333").drawCircle(0,0,5);
circle.addEventListener("mousedown",function(event){
console.log("mouse down");
});
stage.addChild(circle);
.
.
.
stage.removeChild(circle);
Run Code Online (Sandbox Code Playgroud)
EventListeners不会被删除removeChild(),因为它们也没有被添加addChild()- 如果你想要快速删除它们,最快的方法是myChild.removeAllEventListeners();
但是,如果DisplayObject没有以某种方式附加到舞台上,则鼠标交互不会调度事件,因为这些事件只会通过舞台及其子节点.
如果您担心内存泄漏:EaselJS中的事件直接位于DisplayObject本身,因此每当您删除对该Object的引用时,GarbageCollecter也将(应该)收集事件,无需单独删除事件.(拜托,有人在这里纠正我,万一我错了)
| 归档时间: |
|
| 查看次数: |
5994 次 |
| 最近记录: |