|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
как сделать сортировку через swapDepth
Допустим есть обекты каждый со своей глубиной _z:
obj1._z=30 getDepth=1 obj2._z=10 getDepth=2 obj3._z=20 getDepth=3 Через sortOn я сортирую их по глубине _z. Получаю такое: obj2._z=10 getDepth=2 obj3._z=20 getDepth=3 obj1._z=30 getDepth=1 А как мне используя только swapDepth расставить их по нужным уровням? Тоесть чтобы в результате на сцене получилось так: obj2._z=10 getDepth=1 obj3._z=20 getDepth=2 obj1._z=30 getDepth=3 Если бы был метод setDepth то проблем бы не было Подскажите, пожалуйста, алгоритм.
__________________
Он манэ падмэ ХУМ! |
|
|||||
Это понятно что менять глубину. Но глубину надо изменять меняя клипы местами, а не назначая им глубину напрямую. Сталобыть на до как то хитро их перетасовать что бы они выстроились как в третьем примере.
__________________
Он манэ падмэ ХУМ! |
|
|||||
Да знаю я как клипы местами менять Так ведь их нельзя просто нашару поменять все. Представь что их не 3 а 200. И у всех разная глубина. Нужен определенный алгоритм сортировки чтобы все их перестроить и не один не потерять. Это как большие пятнашки. Добавлено через 1 час 34 минуты Попробую сам дотумкать. делаем асоциативный массив в который заносим имена всех наших мувиков, и их величину _z. Чтобы они были доступны вот так: объект=my_array[i].obj величина _z=my_array[i]._z //затем сортируем массив по этой величине _z my_array.sortOn(["_z"],Array.NUMERIC); //далее играем в пятнашки do { r = 0; //бежим по всем элементам for (var i = 0; i<my_array.length; i++) { //получаем реальную глубину ролика var depth = my_array[i].obj.getDepth(); //если глубина не совпадает с порядковым номером в массиве свапим ролик на свое место if (i<>depth) { my_array[i].obj.swapDepths(my_array[depth].obj); } else { r++; } } } while (r<my_array[i].length-2);
__________________
Он манэ падмэ ХУМ! |
|
|||||
Я делал это почти так же. Только параллельными массивами, а не ассоциативным.
Идея в том, что есть 2 массива - в одном _z, в другом имена клипов(ну или id, или просто ссылки на клипы) Так вот, сортируем массив с _z-ами, после чего с помощью получаем, элемент с каким ИЗНАЧАЛЬНЫМ номером в массиве стоит на каком месте ТЕПЕРЬ И ровно на эти же места (глубины) помещаем наши клипы из 2-ого массива
__________________
...вселенская грусть |
|
|||||
А так если:
|
|
|||||
Ан нет. Вычистил свои другие скрипты и оказалось что мой метод работает очень даже хорошо.
__________________
Он манэ падмэ ХУМ! |
Часовой пояс GMT +4, время: 01:23. |
|
« Предыдущая тема | Следующая тема » |
|
|