AS3层顺序

时间:2011-10-23 12:31:00

标签: actionscript-3 sprite layer movieclip

我创建了两个空的 Sprites 作为图层,bottom_spr和top_spr

单击按钮时,会出现 MovieClip 并跟随您的鼠标,直到您单击,然后其位置固定。

单击该按钮后,我将MovieClip添加到正确的Sprite中。

不幸的是,图层系统看起来不起作用,因为它们按照我放置的顺序分层,Sprites似乎不会影响它。

这怎么可能?

private var ground_spr:Sprite;
private var units_spr:Sprite;

public function Game() {
addEventListeners();

ground_spr = new Sprite();
units_spr= new Sprite();

addChild(ground_spr);
addChild(units_spr);
}

private function addEventListeners(){
groundBtn.addEventListener(MouseEvent.CLICK, clickGroundBtn);
unitBtn.addEventListener(MouseEvent.CLICK, clickUnitBtn);
}

private function clickGroundBtn(event:MouseEvent){
    var ground = new Ground_mc();
follow();
ground_spr.addChild(ground);
}

private function clickUnitBtn(event:MouseEvent){
    var unit = new Unit_mc();
follow();
units_spr.addChild(unit);
}

1 个答案:

答案 0 :(得分:4)

你的问题很模糊,但我会尝试回答。如果您澄清了如何准确订购对象,我可以更好地回答您的问题。如果需要,可以在深度处理上添加抽象层。在这种情况下,我没有看到任何需要,但我会告诉你一些你可以做的事情。

要将对象添加到屏幕背面:

this.setChildIndex(objName, 0);

要将对象添加到屏幕的正面:

this.setChildIndex(objName, this.numChildren - 1);

交换两个对象的深度:

this.swapChildren(objA, objB);
//Note this is expecting two DisplayObjects so you may have to do:
this.swapChildren(objA as DisplayObject, objB as DisplayObject);