垃圾回收是开发者值得注意的敏感话题。flash player的垃圾回收行为是不可控的。最近,我发现flash player 10.1和AIR 1.5.2新增了System.disposeXML()方法。这又是一个可让开发者手动进行内存释放的方法(虽然只针对 XML 对象)。目前,我所知道的,可进行释放内存的API有(相对把变量赋值为null或其它非正规手段来说):
- System.disposeXML()
- BitmapData.dispose()
- Loader.unloadAndStop()
- System.gc() — 这是一个最有power的API,却只适用于调试版。System.gc() 只给开发者使用的,System.gc() 仅限于 Flash Player 调试版和 AIR 应用程序。在 AIR 应用程序中,System.gc() 方法仅限在运行于 AIR Debug Launcher (ADL) 中的内容或已安装的应用程序的应用程序安全沙箱中的内容中启用。
disposeXML () 方法
public static function disposeXML(node:XML):void
语言版本 :ActionScript 3.0
运行时版本 :Flash Player 10.1, AIR 1.5.2
说明 :使指定的 XML 对象立即可进行垃圾回收。此方法将删除指定 XML 节点的所有节点之间的父级和子级连接。
参数 :node :XML — 应该可使其进行垃圾回收的 XML 引用。