Flash AS2 - 重复的MovieClip从舞台上消失

时间:2014-10-16 17:49:40

标签: flash actionscript-2

我的Flash项目遇到问题。我正在制作我自己的宇宙飞船格斗游戏版本。有一次我想随机产生敌人。这就是我在做的事情。

我在图书馆里有一个名为enemyShip的动画片段,AS-Linkage是普通的敌人。对象未放置在场景中。 在那个框架上的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++;
}

1 个答案:

答案 0 :(得分:0)

From the documentation on duplicateMovieClip

  

如果删除了父级影片剪辑,则也会删除重复的影片剪辑。

请改用attachMovie。这样可以防止删除父动画片段,这样可以解决您遇到的问题。

此外,您需要使用_root.getNextHighestDepth()。否则,您可能会冒着将每个物体附着在同一深度的风险......再次杀死您的重复物。