当可见时,将孩子放在前面

时间:2014-02-03 11:19:53

标签: actionscript-3

在我的Engine类中,“Building”窗口的创建方式如下:

Engine.as

private function createUI():void{
building = new Building (stage);
            addChild(building);
            building.visible = false;

(我有一个名为Building.as的课程。)

每次我点击,在我的useBox(Usebox.as)上,在按钮上购买功能“buyIt”被调用。

UseBox.as

 public function showBuilding():void{
    Engine.building.visible = true;
                }

然后我可以选择我想要的建筑物。当我选择建筑时,窗户变得不可见:

Building.as

public function Construction(e:MouseEvent):void{
Engine.building.visible = false;
Engine.test.buildIt(e);
}

并且场景中出现了一个建筑物(功能“buildIt”)

Tower.as

public function buildIt(e:MouseEvent):void{
    stageRef.addChild(this);
    this.visible = true;
}

问题是,每当“建筑物”窗口可见时,“塔楼”就在所有东西的前面!

有没有办法说“建筑”必须始终站在一切的前面? (如果是的话,我应该在哪里告诉它?在Engine.as?在Building.as?

谢谢!

1 个答案:

答案 0 :(得分:0)

你的代码有问题,你把每个塔都直接放在舞台上,这样你就无法在所有东西面前管理UI。

public function buildIt(e:MouseEvent):void{
    stageRef.addChild(this); //don't use the stage here.
    this.visible = true;
}

你应该使用你的主类来展示你的游戏。