Object of this clas isn't garbage collected

I have a class which draws an object looking “window-like” on the stage, and i cant remove it from memory when i want to remove it. I think it missed some reference, but i don’t know where…

 
package {
import flash.display.InterpolationMethod;
import flash.display.SpreadMethod;
import flash.display.GradientType;
import flash.display.LineScaleMode;
import flash.display.StageQuality;
import flash.display.CapsStyle;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.filters.DropShadowFilter;
import flash.filters.BitmapFilterQuality;
import flash.geom.Rectangle;
import flash.geom.Matrix;
import flash.text.*;
import flash.utils.*;
import fl.transitions.TweenEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
class Content extends Sprite {
private static var shadowFilter=new DropShadowFilter(10,45,0,.6,9,9,1.5,BitmapFilterQuality.LOW);
private static var ramka:Number=9;
private static var matrixWindow:Matrix=new Matrix();
matrixWindow.createGradientBox(150,150,-Math.PI / 6);
private static var textFormat:TextFormat=new TextFormat();
private static var matrixButton:Matrix=new Matrix();
textFormat.color=0xFFFFFF;
textFormat.font="_sans";
textFormat.size=14;
private static var pasek:Number;
private var mover:Sprite,closer:Sprite,minimizer:Sprite,resizer:Sprite;
private var randomColor:uint=Math.ceil(Math.random() * 0xFFFFFF);
private var tween:Tween;
private var maxSzerokosc:Number
public function Content(_parent:MovieClip,dane:XML,_x:Number=0,_y:Number=0) {
_parent.addChild(this);
this.filters=[shadowFilter];
var textField:TextField=new TextField();
textField.autoSize=TextFieldAutoSize.LEFT;
textField.selectable=false;
textField.htmlText="<b>"+dane.@etykieta+"</b>";
textField.setTextFormat(textFormat);
pasek=textField.height + 7;
matrixButton.createGradientBox(10,pasek/2,-Math.PI/2);
textField.y=-(pasek + textField.height)/2;
this.addChild(textField);
this.mover=new Sprite();
this.mover.cacheAsBitmap=true;
this.mover.doubleClickEnabled=true;
this.addChild(this.mover);
var promien:Number=6;
this.closer=new Sprite();
this.closer.cacheAsBitmap=true;
this.closer.graphics.beginGradientFill(GradientType.LINEAR,[0xFF0000,0xFFAAAA],[.75,.75],[0,0xFF],matrixButton,SpreadMethod.REFLECT,InterpolationMethod.LINEAR_RGB);
this.closer.graphics.lineTo(0,pasek*2/3-promien);
this.closer.graphics.curveTo(0,pasek*2/3,-promien,pasek*2/3);
this.closer.graphics.lineTo(-pasek*1.5,pasek*2/3);
this.closer.graphics.lineTo(-pasek*1.5,0);
this.closer.graphics.endFill();
this.closer.graphics.lineStyle(3,0xFFFFFF,1,false,LineScaleMode.NORMAL,CapsStyle.SQUARE);
this.closer.graphics.moveTo(-(this.closer.width-promien)/2,promien);
this.closer.graphics.lineTo(-(this.closer.width+promien)/2,this.closer.height-promien);
this.closer.graphics.moveTo(-(this.closer.width+promien)/2,promien);
this.closer.graphics.lineTo(-(this.closer.width-promien)/2,this.closer.height-promien);
this.closer.y=-pasek;
this.addChild(this.closer);
this.minimizer=new Sprite();
this.minimizer.cacheAsBitmap=true;
this.minimizer.graphics.beginGradientFill(GradientType.LINEAR,[0x0000FF,0xAAAAFF],[.75,.75],[0,0xFF],matrixButton,SpreadMethod.REFLECT,InterpolationMethod.LINEAR_RGB);
this.minimizer.graphics.lineTo(0,pasek*2/3);
this.minimizer.graphics.lineTo(-(pasek-promien),pasek*2/3);
this.minimizer.graphics.curveTo(-pasek,pasek*2/3,-pasek,pasek*2/3-promien);
this.minimizer.graphics.lineTo(-pasek,0);
this.minimizer.graphics.endFill();
this.minimizer.graphics.beginFill(0xFFFFFF);
this.minimizer.graphics.moveTo(-(this.minimizer.width/2+promien),promien);
this.minimizer.graphics.lineTo(-(this.minimizer.width/2-promien),promien);
this.minimizer.graphics.lineTo(-this.minimizer.width/2,this.minimizer.height-promie&#324;);
this.minimizer.graphics.endFill();
this.minimizer.y=-pasek;
this.addChild(this.minimizer);
this.resizer=new Sprite();
this.resizer.graphics.beginFill(this.randomColor,.33);
this.resizer.graphics.moveTo(-ramka,0);
this.resizer.graphics.curveTo(0,0,0,-ramka);
this.resizer.graphics.lineTo(0,-ramka);
this.resizer.graphics.lineTo(ramka,-ramka);
this.resizer.graphics.lineTo(ramka,0);
this.resizer.graphics.curveTo(ramka,ramka,0,ramka);
this.resizer.graphics.lineTo(-ramka,ramka);
this.resizer.graphics.endFill();
this.addChild(this.resizer);
this.x=Math.random()*_x+ramka
this.y=Math.random()*_y+pasek
this.maxSzerokosc=textField.width+this.minimizer.width+this.closer.width
odswiez(null);
stage.quality=StageQuality.MEDIUM;
this.tween=new Tween(this,"y",Regular.easeOut,this.y+50,this.y,1,true)
this.tween=new Tween(this,"alpha",Regular.easeOut,0,1,1,true)
this.tween.addEventListener(TweenEvent.MOTION_FINISH,ustawListenery,false,0,true)
}
private function ustawListenery(event:TweenEvent):void {
this.tween.removeEventListener(TweenEvent.MOTION_FINISH,ustawListenery)
this.mover.addEventListener(MouseEvent.MOUSE_DOWN,startDragg,false,0,true);
this.mover.addEventListener(MouseEvent.DOUBLE_CLICK,minimize,false,0,true);
this.minimizer.addEventListener(MouseEvent.CLICK,minimize,false,0,true);
this.closer.addEventListener(MouseEvent.CLICK,close,false,0,true);
this.resizer.addEventListener(MouseEvent.MOUSE_DOWN,startResize,false,0,true);
stage.quality=StageQuality.BEST;
}
private function minimize(event:MouseEvent):void {
this.mover.removeEventListener(MouseEvent.DOUBLE_CLICK,minimize);
this.minimizer.removeEventListener(MouseEvent.CLICK,minimize);
this.mover.addEventListener(MouseEvent.DOUBLE_CLICK,restore,false,0,true);
this.minimizer.addEventListener(MouseEvent.CLICK,restore,false,0,true);
this.resizer.removeEventListener(MouseEvent.MOUSE_DOWN,startResize);
this.scaleX=this.scaleY=.33;
}
private function restore(event:MouseEvent):void {
this.mover.removeEventListener(MouseEvent.DOUBLE_CLICK,restore);
this.minimizer.removeEventListener(MouseEvent.CLICK,restore);
this.mover.addEventListener(MouseEvent.DOUBLE_CLICK,minimize,false,0,true);
this.minimizer.addEventListener(MouseEvent.CLICK,minimize,false,0,true);
this.resizer.addEventListener(MouseEvent.MOUSE_DOWN,startResize,false,0,true);
this.scaleX=this.scaleY=1;
}
private function startDragg(event:MouseEvent):void {
stage.quality=StageQuality.MEDIUM;
parent.setChildIndex(this,parent.numChildren-1);
stage.addEventListener(MouseEvent.MOUSE_UP,stopDragg,false,0,true);
this.startDrag(false,new Rectangle(ramka,pasek,stage.stageWidth-this.width,stage.stageHeight-this.height));
}
private function stopDragg(event:MouseEvent):void {
stage.quality=StageQuality.BEST;
stage.removeEventListener(MouseEvent.MOUSE_UP,stopDragg);
this.stopDrag();
}
private function startResize(event:MouseEvent):void {
stage.quality=StageQuality.LOW;
parent.setChildIndex(this,parent.numChildren-1);
stage.addEventListener(MouseEvent.MOUSE_UP,stopResize,false,0,true);
stage.addEventListener(MouseEvent.MOUSE_MOVE,odswiez,false,0,true);
}
private function stopResize(event:MouseEvent):void {
stage.quality=StageQuality.BEST;
stage.removeEventListener(MouseEvent.MOUSE_UP,stopResize);
stage.removeEventListener(MouseEvent.MOUSE_MOVE,odswiez);
}
private function close(event:MouseEvent):void {
this.closer.removeEventListener(MouseEvent.CLICK,close);
this.mover.removeEventListener(MouseEvent.MOUSE_DOWN,startDragg);
this.mover.removeEventListener(MouseEvent.DOUBLE_CLICK,minimize);
this.mover.removeEventListener(MouseEvent.DOUBLE_CLICK,restore);
this.minimizer.removeEventListener(MouseEvent.CLICK,minimize);
this.minimizer.removeEventListener(MouseEvent.CLICK,restore);
this.resizer.removeEventListener(MouseEvent.MOUSE_DOWN,startResize);
this.resizer.removeEventListener(MouseEvent.MOUSE_UP,stopResize);
this.tween.removeEventListener(TweenEvent.MOTION_FINISH,ustawListenery)
this.tween=new Tween(this,"y",Strong.easeOut,this.y,this.y+50,2,true)
this.tween=new Tween(this,"alpha",Strong.easeOut,this.alpha,0,2,true)
this.tween.addEventListener(TweenEvent.MOTION_FINISH,deleteMe,false,0,true)
}
private function odswiez(event:MouseEvent):void {
var finX:Number;
var finY:Number;
if (event) {
finX=event.stageX-this.x;
finY=event.stageY-this.y;
} else {
finX=800*Math.random();
finY=600*Math.random();
}
finX<maxSzerokosc?finX=maxSzerokosc:null;
finY<ramka?finY=ramka:null;
finX>stage.stageWidth-ramka-this.x?finX=stage.stageWidth-ramka-this.x:null;
finY>stage.stageHeight-ramka-this.y?finY=stage.stageHeight-ramka-this.y:null;
this.closer.x=this.resizer.x=finX;
this.minimizer.x=finX-this.closer.width;
this.resizer.y=finY;
this.mover.graphics.clear();
this.mover.graphics.lineStyle();
this.mover.graphics.beginFill(0x000000,0);
this.mover.graphics.moveTo(-ramka,-(pasek-ramka));
this.mover.graphics.curveTo(- ramka,- pasek,0,- pasek);
this.mover.graphics.lineTo(finX,- pasek);
this.mover.graphics.curveTo(finX+ramka,-pasek,finX+ramka,-(pasek-ramka));
this.mover.graphics.lineTo(finX+ramka,0);
this.mover.graphics.lineTo(-ramka,0);
this.mover.graphics.endFill();
this.graphics.clear();
this.graphics.lineStyle(1,0x000000,.4,true);
this.graphics.beginGradientFill(GradientType.LINEAR,[this.randomColor,0x000000],[.3,.3],[0,0xFF],matrixWindow,SpreadMethod.REFLECT,InterpolationMethod.RGB);
this.graphics.moveTo(-ramka,-(pasek-ramka));
this.graphics.curveTo(-ramka,-pasek,0,-pasek);
this.graphics.lineTo(finX,-pasek);
this.graphics.curveTo(finX+ramka,-pasek,finX+ramka,-(pasek-ramka));
this.graphics.lineTo(finX+ramka,finY);
this.graphics.curveTo(finX+ramka,finY+ramka,finX,finY+ramka);
this.graphics.lineTo(0,finY+ramka);
this.graphics.curveTo(-ramka,finY+ramka,-ramka,finY);
this.graphics.endFill();
this.graphics.lineStyle(1,0xFFFFFF,.5,true);
this.graphics.beginFill(0x000000,.5);
this.graphics.moveTo(0,0);
this.graphics.lineTo(finX,0);
this.graphics.lineTo(finX,finY-ramka);
this.graphics.curveTo(finX,finY,finX-ramka,finY);
this.graphics.lineTo(ramka,finY);
this.graphics.curveTo(0,finY,0,finY-ramka);
this.graphics.endFill();
}
private function deleteMe(event:TweenEvent):void {
this.tween.removeEventListener(TweenEvent.MOTION_FINISH,deleteMe)
parent.removeChild(this);
}
}
}

I construct it by calling this function:

 
{
...
ref.addEventListener(MouseEvent.CLICK,createContent);
...
}
private function createContent(event:MouseEvent):void {
var ref=root;
var content=new Content(ref.CONTAINER_OKNA,event.target.dane,390,270);
}

What I’m doing wrong?