2014-10-16 120 views
0

我面臨着我的Flash項目的問題。我正在製作我自己的太空船格鬥遊戲版本。有一次,我想隨機產生敵人。這是我正在做的。Flash AS2 - 重複的影片剪輯從舞臺上消失

我在圖書館裏有一個movieclip,叫做enemyShip,AS-Linkage是normalEnemy。對象未放置在場景中。 在這個框架的actionScipt上,我有下面的代碼,這對我來說是這樣。發生的事情是這樣的:前兩個敵人正確地展開,從每個新生成的隱藏物的第三個開始,但不刪除前面的那個。第二個敵人是第一個消失。第一個敵人保持可見。想法請?我曾嘗試duplicateMovieClip和attachMovieClip,他們都有相同的結果。很抱歉,很長的問題!

var origEnemy:MovieClip = _root.attachMovie("normalEnemy", "origEnemy", this.getNextHighestDepth(); 
var numberOfEnemies:Number = 1; 
var enemyIndex:Number = 0; 

_root.onLoad(); 
{ 
    spawnEnemy(); 
    interval = setInterval(spawnEnemy,1000 + Math.random() * 2000); 
}; 
// Spawns new enemies 
function spawnEnemy() 
{ 
    if (numberOfEnemies > 10) 
    { 
     clearInterval(interval); 
    } 
    // Randomly calculate the starting coordinates of newly spawned enemy 
    var x_position = Math.random() * 50; 
    var y_position = Math.random() * 700; 

    // spawn a new enemy and assign random location 
    enemiesArray.push(origEnemy.duplicateMovieClip("enemy" + enemyIndex, this.getNextHighestDepth())); 

    //_root.attachMovie("normalEnemy","enemy" + enemyIndex,this.getNextHighestDepth()); 

    // assign random location 
    enemiesArray[enemyIndex]._x = x_position; 
    enemiesArray[enemyIndex]._y = y_position; 

    // incerement number of enemies 
    numberOfEnemies++; 
    // Increment enemy Index 
    enemyIndex++; 
} 

回答

0

From the documentation on duplicateMovieClip

如果父影片剪輯被刪除,複製的影片剪輯也被刪除。

改爲使用attachMovie。這將防止父級影片剪輯被刪除,這將阻止您遇到的問題。

此外,您需要使用_root.getNextHighestDepth()。否則,您可能會將每個對象附加在相同的深度處......再次清除您的重複項。