Как запустить сборку мусора? - PullRequest
0 голосов
/ 07 октября 2011

Кто-нибудь знает, возможно ли применить сборку мусора к новому компоненту StageVideo в AS3?Я пытался без успеха!Код ниже:

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

Попытка в ГХ:

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

1 Ответ

1 голос
/ 07 октября 2011
this._stageVideo = null;
this._stageVideo.removeEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange)

Я удивлен, что это сработало, должно выдать исключение, вы должны сначала удалить прослушиватели событий, а затем обнулить его ссылку.

Сборщик мусора не запускается каждый раз, когда вы что-то обнуляете, ноесли вы можете использовать профилировщик Flash Builder, вы можете попытаться форсировать GC, также, если вы хотите протестировать его, вы можете упаковать проект как AIR и вызвать GC вручную.

Существует ошибка / функция, которая вызывает GCесли вам не удалось запустить LocalConnection дважды (http://www.nbilyk.com/flash-garbage-collection):

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