如何触发垃圾回收?

时间:2011-10-07 10:04:48

标签: actionscript-3 actionscript adobe stagevideo

有谁知道是否可以将垃圾收集应用于AS3中的新StageVideo组件?我试过没有成功!代码如下:

if ( this._stageVideo == null )
{
    this._stageVideo = stage.stageVideos[0];
    this._stageVideo.addEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange);
}

尝试GC:

this._stageVideo = null;
this._stageVideo.removeEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange);

1 个答案:

答案 0 :(得分:1)

this._stageVideo = null;
this._stageVideo.removeEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange)

我很惊讶它有效,它应该抛出异常,你应该首先删除事件监听器,然后取消它的引用。

垃圾收集器不会在每次取消某些内容时启动,但如果您可以使用Flash Builder分析器,则可以尝试强制GC,如果要对其进行测试,则可以将项目打包为AIR,并手动调用GC。

如果您无法启动LocalConnection两次,将会调用GC的错误/功能(http://www.nbilyk.com/flash-garbage-collection):

try {
    new LocalConnection().connect('foo');
    new LocalConnection().connect('foo');
} catch (e:Error) {}