Показать сообщение отдельно
Старый 27.02.2009, 18:45
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 1  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 290
По умолчанию Пути повышения производительности визуальных компонентов

Друзья, в контейнер в рантайме необходимо добавить достаточно большое количество дочерних компонентов, например 100 (к примеру 100 Panel'ей). Этот процесс занимает приличный промежуток времени - более секунды. Вопрос - можно ли как-то штатными средствами флекса ускорить это дело? Каким-то образом может быть заблокировать компонент на перерисовку до окончания добавления всех дочерних? Или есть иные способы (кроме, конечно, очевидного добавления дочерних компонентов порциями по несколько штук). Подскажите пожалуйста...

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="left"> 
<mx:Script>
<![CDATA[ 
import mx.containers.Panel;
 
private var l_t:Number;
 
private function init():void {
 
l_t = new Date().getTime();
 
var l_p:Panel;
 
for (var i:int = 0; i < 120; i++) 
{ l_p = new Panel();
 
l_p.x = 80 * i;
 
cv.addChild(l_p);
} 
} 
private function created():void 
{
var l_2:Number = new Date().getTime();
trace(l_2 - l_t);
}
]]>
</mx:Script> 
<mx:Button click="init()" ></mx:Button>
<mx:Canvas id="cv" updateComplete="created()" width="500" height="300"></mx:Canvas>
</mx:Application>


Последний раз редактировалось etc; 28.02.2009 в 13:02.