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);
}
}
}