[[Изменить]]
Присоединенный метод не будет работать, если оба целевых объекта являются конечными узлами в общем родительском объекте.
Дети временной шкалы всегда находятся под каким-либо созданным actionScript дочерними объектами, связанными с классом временной шкалы.
, например
Если у вас есть временная шкала X, которая расширяет класс A, а в класс A вы добавляете дочерние элементы E, F, G, но временная шкала X содержит слои B, C, D, каждый из которых имеет один символ в каждом слое, а слой B в нижней части шкалы времени будет наблюдаться следующее:
child 5: G
child 4: F
child 3: E
child 2: D
child 1: C
child 0: B
Чтобы расширить ответ фелипема, я разработал следующий метод, чтобы определить, какой фрагмент ролика лежит выше другого. Это не было тщательно протестировано, но должно служить основой для вашей разработки.
function selectAbove(obj1:DisplayObject, obj2:DisplayObject):DisplayObject
{
var obj1_parentCount:int = parentCount(obj1);
var obj2_parentCount:int = parentCount(obj2);
var target:DisplayObject;
var other:DisplayObject;
if (obj1_parentCount > obj2_parentCount)
{
target = obj1;
other = obj2;
}
else
{
target = obj2;
other = obj1;
}
var container:DisplayObjectContainer =
(target is DisplayObjectContainer) ? target as DisplayObjectContainer : target.parent ;
var container_last:DisplayObjectContainer;
var sharedParent:DisplayObjectContainer;
while(container)
{
if(container.contains(other))
{
sharedParent = container;
break;
}
container_last = container;
container = container.parent;
}
if(!sharedParent)
{
throw new Error("An object does not maintain its parent in the display heirarchy!");
}
var ret:DisplayObject;
if(container == other)
{
ret = target;
}
return container != other ?
container.getChildIndex(container_last) < container.getChildIndex(other) ?
other :
target
:
target
;
}
function parentCount(obj:DisplayObject):int
{
var ret:int = 0;
while(obj)
{
ret++;
obj = obj.parent;
}
return ret;
}
Этот метод будет работать для вложенных иерархий отображения. Я не проверял это 100%, но первоначальные случаи завершены, как и ожидалось.
Удачи!