не удаляется экземпляр класса :~/
в чём причина?
так работает:

Код:
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class Test extends Sprite {
function Test():void {
var a:Sprite = new Sprite();
a.addEventListener(Event.ENTER_FRAME, efListner, false, 0, true);
addChild(a);removeChild(a);a=null;
function efListner(e:Event):void {trace('Please delete me...');}
forceGCRun();
}
private function forceGCRun():void{
var a:Sprite;
var count:uint;
var oldCount:uint;
var timer:Timer;
a = new Sprite();
a.addEventListener(Event.ENTER_FRAME, efListner, false, 0, true);
addChild(a);removeChild(a);a=null;
function efListner(e:Event):void {count++;}
timer = new Timer(1000);
timer.addEventListener("timer", timerHandler, false, 0, true);
timer.start();
function timerHandler(e:TimerEvent):void {
if(oldCount == count){
trace(':)', timer.currentCount);
timer.stop(); timer=null;
}
oldCount = count;
for (var n:uint=0; n<10000; n++){
a = new Sprite(); addChild(a);removeChild(a);a=null;
}
}
}
}
}
а так не работает:

Код:
package{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class Test extends Sprite{
function Test(){
var c:c1 = new c1();
addChild(c); removeChild(c);
c=null;
forceGCRun();
}
public function forceGCRun():void{
var a:Sprite;
var count:uint;
var oldCount:uint;
var timer:Timer;
a = new Sprite();
a.addEventListener(Event.ENTER_FRAME, efListner, false, 0, true);
addChild(a);removeChild(a);a=null;
function efListner(e:Event):void {count++;}
timer = new Timer(1000);
timer.addEventListener("timer", timerHandler, false, 0, true);
timer.start();
function timerHandler(e:TimerEvent):void {
if(oldCount == count){
trace('GC RUN :)', timer.currentCount);
timer.stop(); timer=null;
}
oldCount = count;
for (var n:uint=0; n<10000; n++){
a = new Sprite(); addChild(a);removeChild(a);a=null;
}
}
}
}
}
import flash.display.Sprite;
import flash.events.Event;
class c1 extends Sprite{
function c1(){
addEventListener(Event.ENTER_FRAME, function(e:Event):void{trace('c');},false,0,true);
}
}