2009-12-15 3 views
0

Я havn't смог найти ответ на этот вопрос, и я надеюсь, что Тереза ​​простой и очевидный ответ я просто havn't нашел еще ...Flex: приоритет DisplayObject (т.е. перекрывающихся спрайтов)

В гибком (т. е. используя actionscript и mxml), учитывая два спрайта, есть ли способ заставить их отображаться поверх другого, когда они перекрываются?

Спасибо!

ответ

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); 

Просто думать о нем, как большой старый стек карт. Возьмите один из середины и положите его сверху, и это тот, который вы увидите.

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); 
    } 
}