flash - Actionscript内存管理,垃圾回收

标签 flash actionscript-3 actionscript memory-management garbage-collection

This blog (和其他人)声明在清理对象时,您应该在 dispose() 方法中将对象引用设置为 null。

但是,Actionscript 3(带有 Flash Player 9)使用 mark and sweep为您清除循环引用。所以我想知道:是否真的有任何理由取消您的对象引用?

最佳答案

我从不这样做 - 只要你做显而易见的事情:

  • 中断对该对象的所有引用(从数组中删除,将存储对象的变量设置为空,从显示列表中删除)
  • 移除所有事件监听器等

然后对象使用的内存可以随时覆盖。

var ar:Array = [];
var mc:MovieClip = new MovieClip();

mc.addEventListener(MouseEvent.CLICK, pants);

ar[ar.length] = mc;
addChild(mc);

if(mc.parent) mc.parent.removeChild(mc); // not garbage collected
mc.removeEventListener(MouseEvent.CLICK, pants); // still not garbage collected
ar.splice(0, 1); // finally garbage collected

关于flash - Actionscript内存管理,垃圾回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5877674/

相关文章:

actionscript-3 - 如何指定 ENTER_FRAME 以便对象每隔 4 帧进入一次?

php - 在网站上显示字体

flash - 如何在图像组件之后放置标签?

audio - ActionScript 3中带有声音的快进和快退是否可行?

javascript - 如何结合JavaScript Soundcloud播放器和Flash可视化

javascript - ActionScript 3中的链接按钮+ jQuery集成中的淡出

actionscript-3 - 游戏开发中的 HTML 与 ActionScript3?

ios - Air for iOS 同时使用 StageVideo 和executeInBackground

string - 在 AS3 中分隔字符串

python - 使用 python 解码 Actionscript ByteArray