2013-04-23 50 views
0

我正在制作Flash游戏并快速查询有关动态添加到舞台的对象的分层/顺序。我用十字准线代替鼠标光标,敌舰在屏幕上飞行,但是我遇到的问题是敌船出现在十字准线上方,所以当我去瞄准一艘船时,十字准线不可见它在船下。我该如何改变这一点?更改动态对象的分层

谢谢。

回答

0

这可能适合你。我加入了一个额外的代码行以下功能:

function sendEnemy(e:Event) 
{ 
    var enemy = new EnemyShip(); 
    stage.addChild(enemy); 
    stage.addChild(crosshair);//brings crosshair to topmost level on stage 
} 

function sendEnemyMed(e:Event) 
{ 
    var enemymed = new EnemyShipMed(); 
    stage.addChild(enemymed); 
    stage.addChild(crosshair);//brings crosshair to topmost level on stage 
} 

function sendEnemySmall(e:Event) 
{ 
    var enemysmall = new EnemyShipSmall(); 
    stage.addChild(enemysmall); 
    stage.addChild(crosshair);//brings crosshair to topmost level on stage 
} 

后,你在舞台上添加任何东西,你只需要通过调用来更新十字的z-index的“stage.addChild(十字)”,这又带来了十字线在最高层。

1
+0

嗨,我在看这些有趣的,但因为我只是一个初学者,我不太确定我会怎么去使用它? – David 2013-04-23 13:53:21

0

您可以使用方法addChildAt(spaceship, 0);添加每个太空船,其中零是应该小于或等于十字准线索引的索引。您也可以为您的飞船创建单独的Sprite。在添加十字准线之前将其添加到舞台。

1

虽然接受的答案确实有效,但有时最好采取一种解决问题的设计方法,使其不那么头疼。

例如,你可以创建一个名为enemyLayer层:

var enemyLayer:Sprite = new Sprite; 

你会那么你enemyLayer添加第一个阶段,那么你的十字线:

stage.addChild(enemyLayer); 
stage.addChild(crosshair); 

只要添加一个敌人,你可以将它添加到敌方图层:

enemyLayer.addChild(enemy); 

通过这样的设计方法,你不需要担心经常操纵你的十字线,以确保它是最重要的。十字准线总是处于最佳状态。

+0

我同意你的意见。 +1 – shinobi 2014-09-12 10:42:06