Показать сообщение отдельно
Старый 04.12.2012, 03:13
SomeWater вне форума Посмотреть профиль Отправить личное сообщение для SomeWater Найти все сообщения от SomeWater
  № 2  
Ответить с цитированием
SomeWater

Регистрация: Jul 2009
Сообщений: 15
По моему ваш код и так заработает, на один цикл меньше и в n раз быстрее:
Код AS3:
            for (var col:int=0; col<slots; col++)
			{
				for (var row:int=0; row<slots; row++)
				{
 
						if (grid[col][row].targ)
						{
							container.addChild(grid[col][row].targ);
						}
				}
			}
А если в каждом объекте, кроме координат, хранить показатель его глубины (и не забывать пересчитывать, при изменении координат), то можно значительно все ускорить:

Код AS3:
// каждый объект имеет координаты x,y и параметр zIndex
obj.x = 3;
obj.y = 34;
obj.zIndex = obj.x + obj.y * 10000;
 
// сортируем все объекты по zIndex
objArr.sortOn("zIndex", Array.NUMERIC)
 
// массив содержит уже отсортрованные объекты, просто добавляем
for each(var o in objArr)
  container.addChild(o)