Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flex

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

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

Друзья, в контейнер в рантайме необходимо добавить достаточно большое количество дочерних компонентов, например 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.
Старый 27.02.2009, 19:03
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Э... чего? Зачем такое безумное количество панелей? Вы же понимаете, что 1 панель - это уже куча спрайтов + довольно много кода только для инициализации... тут проблема не в добавлении, их создать в таком количестве уже быстро не получится...
__________________
Hell is the possibility of sanity

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

Регистрация: Nov 2003
Сообщений: 289
Конкретно в моем случае не панели конечно, а подобные конструкции (просто контейнер с рамкой, внутри которого пару текстовых полей):

Код AS3:
<mx:VBox>
<mx:Canvas>
<mx:Label>
<mx:Label>
</mx:Label>
</mx:Label>
</mx:VBox>
</mx:Canvas>


Последний раз редактировалось : hr :; 27.02.2009 в 19:26.
Старый 27.02.2009, 20:07
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, если чесно, то ничем не лучше... Бокс - уже пару спрайтов, вы в него еще канвас запихнули - это еще + пару спрайтов + еще пару текстовых полей. А теперь умножьте... и добавьте к этому всему код нужный для инициализации каждого элемента... Не знаю, я бы старался избегать подобных ситуаций... ну или если так уж припрет показать одновременно несколько сотен отдельных текстовых полей, то, наверное, не использовал бы лейблы, а текстовые поля... ну и вообще постарался бы добиться подобного эффекта используя минимум элементов - форматируя одно текстовое поле например, вместо создания множества и т.п. Вообще, как вы себе представляете интерфейс пользователя состоящий из сотен компонентов? Пользователь поседеет пока научится им пользоваться
__________________
Hell is the possibility of sanity

Старый 28.02.2009, 12:40
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 5  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 289
Такой интерфейс пользователя взят из канонического примера Flex-приложения. Визуальный компонент, представляющий thumbnail товара имеет как раз подобную структуру. Вопрос в том, может ли флекс помочь мне в реальном деле создания подобного интерфейса магазина, где сотня товаров?

Старый 28.02.2009, 13:04
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Сотня мало. Берите тысячу. Тайллист вам нужно писать такой, который отображает ровно то, что есть на экране и подменяет данные в каждом item-е при скроллинге, не меняя набор item-ов вовсе.

Старый 28.02.2009, 17:10
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 7  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 289
__etc, спасибо, понятно.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.