PDA

Просмотр полной версии : Не могу подобрать алгоритм


RaVeN-Nikma
26.03.2004, 02:02
Задача : Есть 7 мувиклипов, нужно задать им Depth в зависимости от их координаты Y , чем Y больше, тем Depth выше.

Я написал следующее

for (x=1;x!=8;x++) {
l=0;
for (z=1;z!=8;z++) {
if (this["har"+x]._y>this["har"+z]._y) {
l++;
}
}
this["har"+x].swapDepths(l);
}

Такой код работает, если нет мувиклипов с одинаковой Y Мастера помогите, plizzz :(

lilit
26.03.2004, 11:48
а если заменить на >=

Nox Noctis
26.03.2004, 12:46
// создаём массивклипов
var heap = [];
for (var i = 0; i<8; i++) {
heap.push(this["har"+i]);
}
// сортируем по игреку
sortY = function (a, b) {
return Number((a._y<b._y)*(-1) || (a._y>b._y));
};
heap.sort(sortY);
// задаём глубину
startDepth = 123;
for (var i = 0; i<heap.length; i++) {
heap[i].swapDepths(startDepth+i);
}
// проверяем что получилось
for (var i = 0; i<heap.length; i++) {
trace(heap[i]+" :: "+heap[i].getDepth());
}