Wolsh, не понял. Если срабатывает ГЦ, то он именно удаляет объекты. Вот еще пример.

Код AS3:
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.system.System;
public class GCTest extends Sprite {
public function GCTest() {
stage.addEventListener(MouseEvent.CLICK, stageMouseClickHandler);
}
private function stageMouseClickHandler(event:MouseEvent):void {
var a:A = new A();
addChild(a.s);
var s:Sprite = new Sprite();
addChild(s);
s.addEventListener(Event.ENTER_FRAME, test, false, 0, true);
}
private function test(event:Event):void {
trace('inside main');
System.gc();
}
}
}
import flash.display.Sprite;
import flash.events.Event;
import flash.system.System;
internal class A {
public var s:Sprite = new Sprite();
function A() {
s.addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true);
s.graphics.beginFill(0x00FF00);
s.graphics.drawCircle(0, 0, 50);
s.graphics.endFill();
}
private function enterFrameHandler(event:Event):void {
trace('inside A');
System.gc();
}
}
Тут еще интересней. s, что внутри A удалится сразу же, хотя он в дисплей листе. s, что внутри Main будет работать бесконечно долго. В чем разница между ними?