Each level eats more memory

I’ve got a frustrating problem where every time a level ends and begins again, it eats a little more memory. This means that after playing for 5mins or so, the game is beginning to noticeably slow down. I’ll post my level class. If anyone’s got the time to have a look at this, I’d be most grateful…

package
{	
	import canazza.DataListener;
	
	import flash.display.*;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFormat;
	
	
	public class level extends Sprite
	{
		public static var anNumber:int;
		public var cardNumber:int;
		public var animalSpeed:int;
		public var myBackground:background;
		private var myHitTest:HitTest;
		private static var myLasso:Net;
		public static var aniArray:Array;
		public var levelTimer:FloodTimer;
		public var levelTime:int;
		
		
		public var level1Speed:Number;
		public var level2Speed:Number;
		public var level3Speed:Number;
		public var level4Speed:Number;
		public var level5Speed:Number;
		private var thisAnimal:animal;
		
		
		public function level(levelNo:int)
		{	
			trace("level instantiated");
			
			myBackground = new background();	
			animalSpeed = 30;
			
			level1Speed = 0;
			level2Speed = animalSpeed*0.25;
			level3Speed = animalSpeed*0.5;
			level4Speed = animalSpeed*0.75;
			level5Speed = animalSpeed;
			
			setLevelVars(levelNo);	
			this.addChild(myBackground);
			aniArray = new Array();
			myLasso = new Net();
			myHitTest  = new HitTest();
				
			animalSpawn();
			wildCardSpawn();
				
			DataListener.addDataListener("removeAnimalListeners",cleanUpLevel);
			
			
			levelTimer = new FloodTimer(levelTime);
			this.addChild(levelTimer);
			myBackground.addChild(myLasso);
			
			var levelFormat:TextFormat = new TextFormat();
			levelFormat.size = 30;
			levelFormat.font = "_Arial"
			
			var levelBox:TextField = new TextField();
			levelBox.selectable = false;
			levelBox.embedFonts = true;
			levelBox.width = 250;
			levelBox.text = "level No: "+levelNo.toString();
			levelBox.setTextFormat(levelFormat);
			addChild(levelBox);
			
			var visuals:VisualFX = new VisualFX();
			addChild(visuals);
			
			DataListener.setData("levelCreated","balls");
			
			
		}
		
		private function setLevelVars(levelNo):void {
			if (levelNo==1) {
				anNumber = 2;
				animalSpeed += level1Speed;
				cardNumber = 0
				levelTime = anNumber*10;
				
			}else if (levelNo==2) {
				anNumber = 2;
				animalSpeed +=level2Speed;
				cardNumber = 0;
				levelTime = anNumber*10;
				
			}else if (levelNo==3) {
				anNumber = 2;
				animalSpeed +=level3Speed;
				cardNumber = 0;
				levelTime = anNumber*10;
				
			}else if (levelNo==4) {
				anNumber = 2;
				animalSpeed += level4Speed;
				cardNumber = 0;
				levelTime = anNumber*10;
				
			}else if (levelNo==5) {
				anNumber = 2;
				animalSpeed += level5Speed;
				cardNumber = 0;
				levelTime = anNumber*10;
				
			}else if (levelNo==6) {
				anNumber = 4;
				animalSpeed += level1Speed;
				cardNumber = 0;
				levelTime = anNumber*9;
				
			}else if (levelNo==7) {
				anNumber = 4;
				animalSpeed += level2Speed;
				cardNumber = 0;
				levelTime = anNumber*9;
				
			}else if (levelNo==8) {
				anNumber = 4;
				animalSpeed += level3Speed;
				cardNumber = 0;
				levelTime = anNumber*9;
				
			}else if (levelNo==9) {
				anNumber = 4;
				animalSpeed += level4Speed;
				cardNumber = 0;
				levelTime = anNumber*9;
				
			}else if (levelNo==10) {
				anNumber = 4;
				animalSpeed += level5Speed;
				cardNumber = 0;
				levelTime = anNumber*9;
				
			}else if (levelNo==11) {
				anNumber = 4;
				animalSpeed += level1Speed;
				cardNumber = 1;
				levelTime = anNumber*8;
				
			}else if (levelNo==12) {
				anNumber = 4;
				animalSpeed +=level2Speed;
				cardNumber = 1;
				levelTime = anNumber*8;
				
			}else if (levelNo==13) {
				anNumber = 4;
				animalSpeed += level3Speed;
				cardNumber = 1;
				levelTime = anNumber*8;
				
			}else if (levelNo==14) {
				anNumber = 4;
				animalSpeed += level4Speed;
				cardNumber = 1;
				levelTime = anNumber*8;
				
			}else if (levelNo==15) {
				anNumber = 4;
				animalSpeed += level5Speed;
				cardNumber = 1;
				levelTime = anNumber*8;
				
			}else if (levelNo==16) {
				anNumber = 6;
				animalSpeed += level1Speed;
				cardNumber = 1;
				levelTime = anNumber*7;
				
			}else if (levelNo==17) {
				anNumber = 6;
				animalSpeed += level2Speed;
				cardNumber = 0;
				levelTime = anNumber*7;
				
			}else if (levelNo==18) {
				anNumber = 6;
				animalSpeed += level3Speed;
				cardNumber = 0;
				levelTime = anNumber*7;
				
			}else if (levelNo==19) {
				anNumber = 6;
				animalSpeed += level4Speed;
				cardNumber = 1;
				levelTime = anNumber*7;
				
			}else if (levelNo==20) {
				anNumber = 6;
				animalSpeed += level5Speed;
				cardNumber = 1;
				levelTime = anNumber*7;
				
			}else if (levelNo==21) {
				anNumber = 6;
				animalSpeed += level1Speed;
				cardNumber = 2;
				levelTime = anNumber*6;
				
			}else if (levelNo==22) {
				anNumber = 6;
				animalSpeed += level2Speed;
				cardNumber = 2;
				levelTime = anNumber*6;
				
			}else if (levelNo==23) {
				anNumber = 6;
				animalSpeed += level3Speed;
				cardNumber = 2;
				levelTime = anNumber*6;
				
			}else if (levelNo==24) {
				anNumber = 6;
				animalSpeed += level4Speed;
				cardNumber = 2;
				levelTime = anNumber*6;
				
			}else if (levelNo==25) {
				anNumber = 6;
				animalSpeed += level1Speed;
				cardNumber = 3;
				levelTime = anNumber*6;
				
			}
		}

		
		//create the animals
		public function animalSpawn():void {
			
			//Creates anNumber of animal objects and adds them to aniArray
			//Sets animal type  
			for (var x:int = 0; x<anNumber; x++) {
				var thisAnimal:animal = new animal(animalSpeed);
				
				thisAnimal.type = floodGame.aniTypeArray[x];
				thisAnimal.addEventListener(Event.ENTER_FRAME,myHitTest.animalCrash,false,0,true);
				aniArray.push(thisAnimal);
				addChild(thisAnimal); 
			trace(thisAnimal.type+" animal spawned");
				
			}
			
		}
		
		public function wildCardSpawn():void {
			
			//Creates cardNumber of wildcard animal objects and adds them to aniArray
			//Sets animal type  
			for (var x:int = 0; x<cardNumber; x++) {
				thisAnimal = new animal(animalSpeed);
				
				thisAnimal.type = floodGame.cardTypeArray[x];
				thisAnimal.addEventListener(Event.ENTER_FRAME,myHitTest.animalCrash,false,0,true);
				aniArray.push(thisAnimal);
				addChild(thisAnimal); 
			trace(thisAnimal.type+" animal spawned");
				
			}
			
		}
		
		public static function netKill():void {
			myLasso.netFadeOut();
		}
		
		private function cleanUpLevel(label,data:*):void {
			
			data.removeEventListener(Event.ENTER_FRAME,myHitTest.animalCrash);
			
		}
		
		


	
	}
}