[AS3] Tween stops working after ~1min, 37secs

Hi guys,

I would greatly appreciate your help!

I’m creating 18 enemies (simple circle sprites) using a for loop,
Then (using Math.random), I’m selecting 1 enemy at random and making it travel down the screen,
Once it’s at the bottom of the screen, it’s y position will reset back to zero.

However, I’ve got this problem where my motion tween comes to a complete halt after approximately 1min and 37secs. Any ideas why?

I’ve attached the .fla and .as, however, here’s the .as if you can’t be bothered downloading it: (Enemy1 is just a MovieClip I created)

package  {
	
	import flash.display.MovieClip;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import flash.events.Event;
	import fl.transitions.Tween;
	import fl.transitions.easing.*;
	
	public class Enemies extends MovieClip {
		
		var enemyNo:int;
		
		var enemyTimer:Timer = new Timer(100);
		
		var noOfEnemies:int = 18;
		
		var moveArray:Array = new Array();
		
		public function Enemies() {
			addEnemy1();
		}
		
		var e1Array:Array = new Array();
		public function addEnemy1():void {
			for(var i = 0; i < noOfEnemies; i++) {
				var enemy1:Enemy1 = new Enemy1;
				addChild(enemy1);
				e1Array* = enemy1;
				e1Array*.x = 30 * i + 1;
				moveArray* = 0;
				trace(moveArray*);
			}
			enemyTimer.addEventListener(TimerEvent.TIMER, randomSelect);
			enemyTimer.start();
		}
		
		public function randomSelect(event:TimerEvent):void {
			enemyNo = Math.floor(Math.random() * noOfEnemies) + 0;
			this.addEventListener(Event.ENTER_FRAME, moveEnemy);
			this.removeEventListener(TimerEvent.TIMER, randomSelect);
		}
		
		public function moveEnemy(event:Event):void {
			if(moveArray[enemyNo] == 0) {
				moveArray[enemyNo] = 1;
				var myTween1:Tween = new Tween(e1Array[enemyNo], "y", None.easeOut, 0, 400, 3, true);
				e1Array[enemyNo].y = 0;
			}

			if(e1Array[enemyNo].y >= 400) {
				moveArray[enemyNo] = 0;
			}
			
			trace("Enemy No: " + enemyNo + ", Moving: " + moveArray[enemyNo]);
			
			enemyTimer.addEventListener(TimerEvent.TIMER, randomSelect);
			this.removeEventListener(Event.ENTER_FRAME, moveEnemy);
		}
	}
}