Flash の表示リストを使用している場合は、z に基づいてスプライトを並べ替える必要があります。
DisplayObjectContainer
a の子をz 位置に基づいてソートするコードを次に示します。オブジェクトの位置が変更されるたびにこれを呼び出します。
public function sortChildren(container:DisplayObjectContainer):void
{
var objects:Vector.<DisplayObject> = new Vector.<DisplayObject>;
for (var i:int = 0; i < container.numChildren; i++)
{
objects.push(container.getChildAt(i));
}
objects.sort(sortCompare);
var index:int = 0;
for (var j:int = 0; j < objects.length; j++)
{
index = container.getChildIndex(objects[j]);
if (index != j)
container.setChildIndex(objects[j], j);
}
}
private function sortCompare(a:DisplayObject, b:DisplayObject):int
{
return (a.z - b.z);
}
objects
この関数が呼び出されるたびに配列全体を埋める必要がないように、ステージにアイテムを追加/ステージからアイテムを削除するたびに、メンバーをクラスメンバーに移動し、アイテムを追加/削除できます。