2014-09-10 35 views
0

我有一個問題,我不知道如何挑選一個隨機數組。ActionScript 3(AS3)如何挑選隨機數組?

var enemies:Array; 

public function Main() { 
enTimer = new Timer(1000); 
enTimer.addEventListener("timer", createEnemy); 
enTimer.start(); 
} 

private function Enemy1():void { 
var enemy1 = new Enemy1(); 
enemies.push(enemy1); 
} 

private function Enemy2():void { 
var enemy2 = new Enemy2(); 
enemies.push(enemy2); 
} 

public function createEnemy():void { 
//here is the problem how to pick up a random enemy ?? 
var EN = enemies[math.round(Math.random() * 2)]; 

stage.addChild(EN) 
} 

該即時通訊歌廳錯誤後:

Implicit coercion of a value of type Array to an unrelated type flash.display:DisplayObject.

回答

4

你有你的代碼的幾個問題。

對於初學者,您定義了兩個函數Enemy1Enemy2,但您也有兩個類似Enemy1Enemy2的兩個類。我會避免調用函數和類相同的名稱,因爲它會引起混淆。

此外,之所以你所得到的錯誤:

Implicit coercion of a value of type Array to an unrelated type flash.display:DisplayObject.

是因爲你的Enemy1Enemy2類不擴展某些類型DisplayObject可以添加到舞臺上DisplayObject類,只有對象。 Enemy1Enemy2類從哪些對象繼承?

你的敵人對象類應該是這個樣子就繼承去,以確保他們成爲DisplayObject類型:

package { 
    import flash.display.MovieClip; 

    public class Enemy1 extends MovieClip { 

     public function Enemy1() { 

     } 
    } 
} 

package { 
    import flash.display.Sprite; 

    public class Enemy1 extends Sprite { 

     public function Enemy1() { 

     } 
    } 
} 

MovieClipSprite是兩個例子屬於DisplayObject類的一部分的對象。