Flex:DisplayObject优先级(即重叠Sprite)

时间:2009-12-15 06:32:36

标签: flex actionscript

我无法找到答案,我希望这是一个简单而明显的答案我还没有找到......

在flex(即使用actionscript和mxml)中,给定两个Sprite,有没有办法强制一个在重叠时显示在另一个上面?

谢谢!

2 个答案:

答案 0 :(得分:3)

是的,这一切都取决于它们在显示列表中的位置。

所以在这个示例中,剪辑2位于顶部

var container : Sprite = new Sprite();
var clip1 : Sprite = new Sprite();
var clip2 : Sprite = new Sprite();

container.addChild(clip1);
container.addChild(clip2);

并且在此示例中,剪辑1位于顶部

var container : Sprite = new Sprite();
var clip1 : Sprite = new Sprite();
var clip2 : Sprite = new Sprite();

container.addChild(clip2);
container.addChild(clip1);

把它想象成一大堆旧牌。从中间取一个并将其放在顶部,这就是你将看到的那个。

答案 1 :(得分:0)

假设:两个对象要么一起位于舞台上,要么位于同一个DisplayObject中。

private function checkOverlap(obj1:Sprite, obj2:Sprite):void {
    //Forces obj1 to appear on top of obj2
    if (obj1.parent.getChildIndex(obj1) < obj2.parent.getChildIndex(obj2)) {
        obj1.parent.swapChildren(obj1, obj2);
    }
}