Показать сообщение отдельно
Старый 04.02.2012, 18:31
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 4  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Спасибо, за ответы. Да, я задал вопрос, потому что не умею замерять производительность как следует. Да и "производительность" - понятие растяжимое. По логике, нужно использовать setChildIndex(), так как он для этого и предназначен, addChildAt() предназначен для другого - для добавления обьектов. Но проведя небольшой тест в дебаг плеере, картина получилась следующая:
Цитата:
addChildAt() || setChildIndex()
30 120
60 122
59 119
60 119
59 122
69 120
61 119
60 125
61 119
62 120
61 119
63 119
60 116
Вот код, который я использовал:
Код AS3:
private function init(e:Event = null):void {
	this.removeEventListener(Event.ADDED_TO_STAGE, init);
	mcs = new Array();
	var mc:MC;
	for (var i:uint = 0; i < 2000; i++){
		mc = new MC();
		mcs.push(mc);
		this.addChild(mc);
	}
	this.stage.addEventListener(MouseEvent.CLICK, onClick);
}
 
private function onClick(e:MouseEvent):void {
	var time1:Number = getTimer();
	for (var i:uint = 0; i < mcs.length; i++){
		addChildAt(mcs[i], 0);
	}
	time1 = getTimer() - time1;
	var time2:Number = getTimer();
	for (var j:uint = 0; j < mcs.length; j++){
		setChildIndex(mcs[j], 0);
	}
	time2 = getTimer() - time2;
	trace(time1, time2);
}
Вот и решил спросить у более опытных.
__________________
Я мало чего умею, но зато хорошо умею учиться...