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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.10.2011, 12:34
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 11  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
кстати код на 450 строк....
Это в итемрендерере столько? Все не нужно, лишнее можно вырезать и вставить сюда.

Старый 18.10.2011, 13:37
billion вне форума Посмотреть профиль Отправить личное сообщение для billion Посетить домашнюю страницу billion Найти все сообщения от billion
  № 12  
Ответить с цитированием
billion

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
ага.... удалось выяснить следующее:

List у меня внутри TitleWindow рамером 200 px.
1. В List вывожу 5 элементов. Отображаются нормально. Ещё на 2 элемента хватило бы места (111.jpg).

2. Нажимаю на первый элемент - отображается RichEditableText с отображением категорий (222.jpg)
за фоном подгружаются данные из БД. Нажимаю на второй элемент - тоже всё хорошо, данные из БД.

3. Спускаюсь вниз списка и выбираю последний элемент - отображаются категории первого элемента. Подгрузки из БД не происходит. Собственно вот он глюк. (333.jpg)

Но! Если окошко сделать большего размера чтобы скролла не было и места хватало для прорисовывания каждого элемента - то глюков никаких нет. Экспериментально выяснил если высоту окна сделать -10 или +10 то глюка нет.

что это? глюк? у меня подозрение что что-то в коде у меня не так.

В ItemRenderer примерно следующий код:

Код AS3:
	<s:Label id="labelDisplay"
				 text="{data.label}"
				 left="10" top="3"
				 textAlign="start"
				 fontWeight="bold"
				 verticalAlign="middle"
				 maxDisplayedLines="3"/>
		</s:Group>
 
	<s:BorderContainer id="bc" includeIn="selected" >
		<s:VGroup id="vg" width="100%" height="100%" top="0">
 
			<s:RichEditableText id="ta0" heightInLines="{NaN}"
			creationComplete="ta0_creationCompleteHandler(event)"	/>
	</s:VGroup>
	</s:BorderContainer>
Код AS3:
protected function ta0_creationCompleteHandler(event:FlexEvent):void
{
 
	//делаю загрузку данных из БД
 
	var s:String = new String();
	for (var i:Number=0;i<cr_ob_sf.lastResult.length;i++) {
		s += '<a id="'+cr_ob_sf.lastResult[i].P+'">'+cr_ob_sf.lastResult[i].A+'</a> '
	}
	var cfg:Configuration = TextFlow.defaultConfiguration;
	var normalFmt:TextLayoutFormat = new TextLayoutFormat(cfg.defaultLinkNormalFormat);
	normalFmt.color = 0x0000FF;
	normalFmt.textDecoration = TextDecoration.UNDERLINE;
	var hoverFmt:TextLayoutFormat = new TextLayoutFormat(cfg.defaultLinkHoverFormat);
	hoverFmt.color = 0x0000FF; 
	hoverFmt.textDecoration = TextDecoration.UNDERLINE;
	cfg.defaultLinkNormalFormat = normalFmt;
	cfg.defaultLinkHoverFormat = hoverFmt;
	ta0.textFlow = TextConverter.importToFlow(s, TextConverter.TEXT_FIELD_HTML_FORMAT, cfg);
 
	ta0.validateNow();
 
}
Изображения
     


Последний раз редактировалось billion; 18.10.2011 в 13:56.
Старый 18.10.2011, 14:37
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 13  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
ItemRendererов создается ровно столько, сколько влезает. При скролинге у существующих обновляется data.
Поэтому вешать что-то отвечающее за вывод данных в creationComplete бессмысленно. override data, как сказал Астрапорт.

Добавлено через 5 минут
Вынесите запрос из итемРендерера, по change листа например его делайте, и только в том случае, если нет данных. Полученное пихайте в нужный элемент датапровайдера. Иначе у вас получится/получается - выбрал элемент - запрос - скролл - ответ и в итемрендерере с новыми данными появляется ранее запрошенная инфа для другого элемента.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 18.10.2011, 15:29
billion вне форума Посмотреть профиль Отправить личное сообщение для billion Посетить домашнюю страницу billion Найти все сообщения от billion
  № 14  
Ответить с цитированием
billion

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
ага.... вот теперь понятно.... благодарю за ответ. придётся выносить все лоадеры за итемрендеры. вот только с override data не понятно.... как этот код прикрутить и куда? можно примерчик?

Старый 18.10.2011, 15:32
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 15  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
В код итемрендерера, почитайт хелп, это сеттер в него приходит объект из вашего датаПровайдера, от него и пляшите. List.selectedItem это тот же объект.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

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

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


 


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


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