Objects not being garbage collected!

I have checked and rechecked, and I do not know why these “buckets” aren’t being killed when I run the reset menu function, a fresh set of eyes could really help.

package com.Views {
	
	
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.TimerEvent;
	import flash.geom.Point;
	import flash.text.Font;
	import flash.utils.Timer;
	
	import gs.*;
	import gs.easing.*;
	import gs.events.*;
	import gs.plugins.*;
	import gs.utils.*;
	
	import org.simplemvc.core.Model;
	import org.simplemvc.core.View;
	import org.simplemvc.interfaces.IController;

	public class BucketMenu extends View {
		
		private var _gill:Font;
		private var _loader:BulkLoader;
		private var _spacing:int = 0;
		
		private var _timeLine:TimelineMax;
		private var spacer:MovieClip;
		private var bc:BucketController;
		private var _leftPoint:Point;
		private var _count:int = 0;
		private var _state:String = null;
		
		
		public var _startPoints:Array;
		public var _buckets:Array;
		public var _liveBucket:Bucket = null;
		
		//public static const ANIMATION_DONE:String = "animDone";
		
		
		public function BucketMenu(model:Model, controller:IController=null) {
			
			
			super(model, controller);
			_gill = new Gill();
			TweenPlugin.activate([TransformAroundCenterPlugin, MotionBlurPlugin]);
			addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true);
			bc = new BucketController( model, this);
			_buckets = new Array();
			_startPoints = new Array();
			_leftPoint = new Point(-100,0);
			
		}
	
		
		private function added(e:Event):void {
			
			trace("buckets added to stage");
			trace("event Names = "+EventNames.SECTION_4);
			spacer = new MovieClip();
			spacer.graphics.beginFill(0x666666, 0);
			spacer.graphics.drawRect( 0, 0, 800, 700);
			spacer.graphics.endFill();
			spacer.y = -20;
			addChild(spacer);
			
			
			var fs:LayoutUtil = new LayoutUtil();
			fs.yOffset = 30;
			fs.addResizeTarget(spacer);
			
			var _we:RText = new RText(_gill, "left", 0, true, "we are SISU...", 0, 0, "center", 28, 0xFAA634, true, false, false);
			_we.alpha = 0;
	  		_we.y = stage.stageHeight>>1;
	  		_we.x = stage.stageWidth>>1;
	  		addChild(_we);
	  		
	  		var fs2:LayoutUtil = new LayoutUtil();
	  		fs2.yOffset = 100;
	  		//fs2.doesBlur = true;
	  		fs2.addResizeTarget(_we, "TC");
	  		//TweenMax.to(_we, 2, {alpha:1, startAt:{blurFilter:{blurX:10, blurY:10}},blurFilter:{blurX:0, blurY:0, delay:.6}});
	  		TweenMax.to(_we, 1.4, {startAt:{transformAroundCenter:{scaleX:0, scaleY:0}, alpha:0}, alpha:1, x:(stage.stageWidth>>1)-(_we.width>>1), y:100, transformAroundCenter:{scaleX:1, scaleY:1}, ease:Bounce.easeOut, delay:2});
			startLoad();
			
		}
		
		private function startLoad():void{
			
			
			if(BulkLoader.getLoader("Menu") == null){ 
				_loader = new BulkLoader("Menu");
	            _loader.logLevel = BulkLoader.LOG_INFO;
	           
	         	_loader.add("MenuImages2/red.png", {id:"0"});
	            _loader.add("MenuImages2/orange.png", {id:"1"});
	          	_loader.add("MenuImages2/yellow.png", {id:"2"});
	            _loader.add("MenuImages2/green.png", {id:"3"});  
	           	_loader.add("MenuImages2/blue.png", {id:"4"});
	            _loader.add("MenuImages2/violet.png", {id:"5"}); 
	            
	            _loader.addEventListener(BulkLoader.COMPLETE, itemsLoaded);
	          
	            _loader.start();
	            
	            
	  		}else{
	  			
	  			_loader = BulkLoader.getLoader("Menu"); 
  				itemsLoaded(null);
	  		}	
	  		
	  		
	  		
		}
		
		private function itemsLoaded(e:Event = null):void{
			
			
			for (var i:int = 0; i<6; i++){
				
				
				var _buk:Bucket = new Bucket(model, _loader.getBitmap(String(i)), this.spacer, _text*, i, null);
				
				_buckets.push(_buk);
				
				_buk.name = _names*;
				_buk.y = spacer.height >>1;;
				_buk.x = _spacing;
				_startPoints.push(_spacing);
				
				_spacing += _buk.width-10;
				spacer.addChild(_buk);
				spacer.setChildIndex(_buk, 0);
				
				_buk.x = 360;
				_buk.scaleX = _buk.scaleY = 0;
				
				if(i>4){
					trace("end of itemsloaded");
					//_buckets.reverse();
					_leftPoint.y = (spacer.height>>1)-125;
					
					movingOn();
					
					
				}
			}
		}
		
		private function movingOn():void {
			
			trace("from moving on = "+_state);
			if(_state == null || _state == "home"){
						
				bucketIntro();
							
			}else{
						
				moveTo();
			}
			
		}
		
		
		private function bucketIntro():void{
			
			_timeLine = new TimelineMax();
			var yNum:int = (spacer.height >>1)-120;
			//_timeLine.useFrames = true;
			_timeLine.insertMultiple( [ new TweenMax(_buckets[0], 2.5, {bezierThrough:[{x:360, y:110}, {x:_startPoints[0], y:yNum}], scaleX:1, scaleY:1, motionBlur:{strength:0.6, quality:2}, ease:Expo.easeOut}),
										 new TweenMax(_buckets[1], 2.5, {bezierThrough:[{x:360, y:110}, {x:_startPoints[1], y:yNum}], scaleX:1, scaleY:1, motionBlur:{strength:0.6, quality:2}, ease:Expo.easeOut}),
										  new TweenMax(_buckets[2], 2.5, {bezierThrough:[{x:360, y:110}, {x:_startPoints[2], y:yNum}], scaleX:1, scaleY:1, motionBlur:{strength:0.6, quality:2}, ease:Expo.easeOut}),
										   new TweenMax(_buckets[3], 2.5, {bezierThrough:[{x:360, y:110}, {x:_startPoints[3], y:yNum}], scaleX:1, scaleY:1, motionBlur:{strength:0.6, quality:2}, ease:Expo.easeOut}),
										    new TweenMax(_buckets[4], 2.5, {bezierThrough:[{x:360, y:110}, {x:_startPoints[4], y:yNum}], scaleX:1, scaleY:1, motionBlur:{strength:0.6, quality:2}, ease:Expo.easeOut}),
										     new TweenMax(_buckets[5], 2.5, {bezierThrough:[{x:360, y:110}, {x:_startPoints[5], y:yNum}], scaleX:1, scaleY:1, motionBlur:{strength:0.6, quality:2}, ease:Expo.easeOut})],0,  TweenAlign.START, .3);
										     
			_timeLine.addEventListener(TweenEvent.COMPLETE, intro2, false, 0, true);
			
		}
	

		private function intro2(e:TweenEvent):void {
			
			var dela:Number = 0;
			
			for (var g:int = 0; g<_buckets.length; g++) {
				
				
				
				var _tl:TimelineMax = new TimelineMax();
				_tl.insertMultiple( [ 	 new TweenMax(_buckets[g], .3, {y:((spacer.height >> 1)-120)+15, colorMatrixFilter:{saturation:1}, ease:Sine.easeInOut}),
											 new TweenMax(_buckets[g]._text, .8, {alpha:1, y:-50, ease:Quad.easeOut})], dela, TweenAlign.START, 0.1 );
											 
				dela +=.5;
				
				_tl.addEventListener(TweenEvent.COMPLETE, reverseIt, false, 0, true);
				
			}
		}
		
		private function reverseIt(e:TweenEvent):void {
			
			var tween:TimelineMax = TimelineMax(e.currentTarget);
			tween.reverse(true);
			_count++;
			if(_count == 6) {
				
				for (var f:int = 0; f<_buckets.length; f++) {
					//dispatchEvent( new Event(BucketMenu.ANIMATION_DONE, false, false));
					
					_buckets[f].begin();
					
				}
			}
		}
	

		
		private function check(e:Event):void{
			
			_state = e.target['currentEvent'];
			switch(e.target['currentEvent']) {
				
				
				case "home":
				
					if(_buckets.length >0) {
						
						resetMenu();
						
					}else {
							
					}
				break;
				default:
				
					moveTo();
					
					 
			}
		}
		
		private function moveTo():void {
			
			var dl:int = 0;
			var _depth:int = 8;
			
			for( var l:int = 0; l < _buckets.length; l++ ) {
				
						
						if(_buckets[l].name == _state) {
							trace("bucket name = "+_buckets[l].name);
							
							_buckets[l].activate();
							var ran3:TweenMax = new TweenMax(_buckets[l], 1, {x:_leftPoint.x, y:_leftPoint.y, alpha:1, scaleX:1, scaleY:1, ease:Sine.easeInOut, delay:dl});
							_liveBucket = _buckets[l];
						
							dl+=0;
							
							
						}else if (_buckets[l].name != _state) {
							trace("bucket name is not current event"+_buckets[l].name);
							
							_buckets[l].deactivate();
							var ran2:TweenMax = new TweenMax(_buckets[l], 1, {x:_leftPoint.x, y:(_leftPoint.y-_depth), scaleX:1, scaleY:1, alpha:0, ease:Sine.easeInOut, delay:dl});
							
							//_depth +=8;
							dl+=0;
							
				}
			} 
		}
		
		
		private function resetMenu():void{
			
			TweenMax.killAllTweens(true);
			_timeLine = null;
			_buckets = [];
			_count = 0;
			_startPoints = [];
			_spacing = 0;
			_count = 0;
			
			
			trace("how many kids does bucket menu have = "+this.spacer.numChildren);
				
			var children:Array = new Array();

			trace ('before : '+spacer.numChildren);
			while(spacer.numChildren)
			
		        {
		        spacer.removeChildAt(0);
		        }
			
		   var i:int = spacer.numChildren;
		   while( i -- )
			  
			    {
		        spacer.removeChildAt( i );
		       	
			    }
			
			
			trace ('after : '+spacer.numChildren);
			
			trace ('after : '+spacer.numChildren);
			
			trace ('-------------------------');
			
			var _timer:Timer = new Timer(1000, 1);
			_timer.addEventListener(TimerEvent.TIMER_COMPLETE, reload, false, 0, true);
			_timer.start();
			
			
		}
		
		private function reload(e:TimerEvent):void {
			
			itemsLoaded();
			
		}
		
		
		
		override public function registerEvents():void {
			
			model.addEventListener( Model.ALL_EVENTS, check );
		}
	}
}

i’m sure there are a lot of problems, but the only one I care about is destroying those buckets… also… inside the buckets, I have a listener for “removed from stage”, and that kills all the listeners, etc, inside the buckets… help anyone… i know it’s asking a lot