Показать сообщение отдельно
Старый 12.04.2010, 09:13
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
по моим тестам узкое место не столько в перетасовке дисплейлиста, сколько в самой сортировке,
имо, так будет быстре
Код AS3:
function reorder():void{
 
	//faces это массив спрайтов
	var sortArr:Array = [];
	for(var ind:uint = 0; ind < 6; ind++){
		//this.faces[ind].tempz = this.faces[ind].transform.getRelativeMatrix3D(root).position.z;
		sortArr[ind]=this.faces[ind].transform.getRelativeMatrix3D(root).position.z;
 
	}
	//this.faces.sortOn("tempz", Array.NUMERIC | Array.DESCENDING);
	var indArr:Array = sortArr.sort(Array.NUMERIC | Array.RETURNINDEXEDARRAY);
	ind = indArr.length - 1;
	while(ind--)this.mainMc.addChild(faces[ind]);
 
}
ps. хотя на шести объектах вряд ли это будет заметно, вот для 600..


Последний раз редактировалось silin; 12.04.2010 в 09:24.