Показать сообщение отдельно
Старый 22.03.2011, 21:05
nldr вне форума Посмотреть профиль Отправить личное сообщение для nldr Найти все сообщения от nldr
  № 2  
Ответить с цитированием
nldr
 
Аватар для nldr

Регистрация: Jul 2009
Сообщений: 48
Я обычно делаю так.
2 массива (если критична скорость <Vector>). Например:

Код AS3:
//Код приведен фрагментально
private var bonuses:Array;
private var bonusesToRemove:Array;
 
//Если надо удалить бонус, то пушим его в bonusesToRemove
private function removeBonus(bonus:Bonus):void
{
       bonusesToRemove.push(bonus);
}
 
//А вот эту функцию, реально удаляющую бонусы вызываем в самом конце цикла обновления
private function actualBonusRemoval():void
{
        var n:int = bonusesToRemove.length;
	var bonusIndex:int;
	for (var i:int = 0; i < n; i++)
	{
		bonusIndex= bonuses.indexOf(bonusesToRemove[i]);
		if ( bonusIndex> -1)
		{
			removeChild(bonusesToRemove[i]);
			bonuses.splice(bonusIndex, 1);
			trace("removed" + bonusesToRemove[i]);
		}
	}
	bonusesToRemove= [];
}


Последний раз редактировалось nldr; 22.03.2011 в 21:11.