Одна вещь, которую вы, вероятно, забудете, это то, что сборщик мусора не собирает объекты, на которые нет ссылок, в тот момент, когда они теряют последнюю ссылку.Обычно сборщик мусора собирает свободные экземпляры только после того, как вы создадите какой-либо объект, но даже не очевидно, будет ли он делать это в этот момент.Вы можете прочитать больше об этом здесь:
О сборке мусора
Или взгляните на эту презентацию: Сборка мусора - Алекс Харуи
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" pageTitle="Memory Leak (Spark)">
<fx:Script>
<![CDATA[
protected function openWindowBtn_clickHandler():void
{
removeAllElements();
addElement(new ExampleView());
}
protected function button1_clickHandler(event:MouseEvent):void
{
var o:Object = new Object();
System.gc();
}
]]>
</fx:Script>
<s:controlBarContent>
<s:Button label="Open Window" id="openWindowBtn" click="openWindowBtn_clickHandler()"/>
<s:Button label="Force GC" click="button1_clickHandler(event)"/>
</s:controlBarContent>
</s:Application>
Взгляните на это.Если вы нажмете кнопку «Force GC» пару раз, она соберет окно ExampleW.В реальном приложении, которое что-то делает, это происходит без необходимости вызывать System.gc () (на самом деле это не очень хорошая практика), но через некоторое время, так что вещи не просто исчезают, когда выс ними покончено, они исчезают, когда вы закончите, и Flash Player решает, что ему нужно очистить.