Показать сообщение отдельно
Старый 12.09.2013, 17:24
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 8  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
По моему можно поменять алгоритм Z - сортировки немного: проверять и менять местами только объект героя и конкретное дерево, а не все объекты друг с другом.

Цитата:
Либо использовать стабильную сортировку (написать ее руками).
Можно просто предоставить другую функцию сортировки, которая проверят и Y и X объекта

Код AS3:
	objects.sort(myLittleZSorter);
	var i:int = objects.length;
	while (i--) {
		var childIndex:int = getChildIndex(objects[i]);
		if (childIndex != i) {
			setChildIndex(objects[i], i);
		}
	}
 
	...
	private function myLittleZSorter(a: Object, b: Object): int {
		if (a.y > b.y) {
			return 1;
		} else if (a.y < b.y) {
			return -1;
		} else if (a.x > b.x) {
			return 1;
		} else {
			return -1;
		}
	}
Тогда при сортировке не будут скакать элементы с одинаковым УГРИКОМ