我正在制作Flash游戏并快速查询有关动态添加到舞台的对象的分层/顺序。我用十字准线代替鼠标光标,敌舰在屏幕上飞行,但是我遇到的问题是敌船出现在十字准线上方,所以当我去瞄准一艘船时,十字准线不可见它在船下。我该如何改变这一点?更改动态对象的分层
谢谢。
我正在制作Flash游戏并快速查询有关动态添加到舞台的对象的分层/顺序。我用十字准线代替鼠标光标,敌舰在屏幕上飞行,但是我遇到的问题是敌船出现在十字准线上方,所以当我去瞄准一艘船时,十字准线不可见它在船下。我该如何改变这一点?更改动态对象的分层
谢谢。
这可能适合你。我加入了一个额外的代码行以下功能:
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(十字)”,这又带来了十字线在最高层。
setChildIndex() - http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#setChildIndex%28%29
或
swapChildren() - http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#swapChildren%28%29
取决于你想做些什么。
您可以使用方法addChildAt(spaceship, 0);
添加每个太空船,其中零是应该小于或等于十字准线索引的索引。您也可以为您的飞船创建单独的Sprite。在添加十字准线之前将其添加到舞台。
虽然接受的答案确实有效,但有时最好采取一种解决问题的设计方法,使其不那么头疼。
例如,你可以创建一个名为enemyLayer层:
var enemyLayer:Sprite = new Sprite;
你会那么你enemyLayer添加第一个阶段,那么你的十字线:
stage.addChild(enemyLayer);
stage.addChild(crosshair);
只要添加一个敌人,你可以将它添加到敌方图层:
enemyLayer.addChild(enemy);
通过这样的设计方法,你不需要担心经常操纵你的十字线,以确保它是最重要的。十字准线总是处于最佳状态。
我同意你的意见。 +1 – shinobi 2014-09-12 10:42:06
嗨,我在看这些有趣的,但因为我只是一个初学者,我不太确定我会怎么去使用它? – David 2013-04-23 13:53:21