Натолкнулся на неожиданный эффект, которого не могу понять.
На сцене есть несколько одинаковых мувиклипов, лежащих на разной высоте. Мне необходимо поменять их глубину исходя из их положения по вертикали.
Пробую так:

Код AS1/AS2:
function sortDepths() {
var arr = [];
var holder = _root;
for (var i in holder) {
if (typeof (holder[i]) == 'movieclip') {
arr.push(holder[i]);
}
}
arr.sortOn("_y",Array.NUMERIC | Array.DESCENDING);
for (var k = 0; k<arr.length; k++) {
arr[k].swapDepths(k);
trace(arr[k]._y+" \t\t"+arr[k].getDepth());
}
}
sortDepths();
В оутпут выкидывает следующее:

Код:
60 0
90 1
120 2
150 3
180 4
210 5
240 6
270 7
0 8
30 9
300 10
Две строчки перед последней ставят меня в тупик. Почему так происходит и как нужно изменить сортировку, чтобы работало правильно?
Добавлено через 1 час 2 минуты
Решил свою ошибку:

Код AS1/AS2:
arr.sortOn("_y",Array.NUMERIC | Array.RETURNINDEXEDARRAY);