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

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

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

Регистрация: Jun 2007
Сообщений: 77
Flame DataGrid при скролле дублирует фон

Я написал свой CellRenderer для тоо чтобы ряды выделять цветом

переназначив:
Код:
override protected function drawBackground():void {
			if (int(data.stat) == 1) {
				setStyle("upSkin", CellRenderer_upSkin_Green);
                        } else {
                               setStyle("upSkin", CellRenderer_upSkin_Red);
                        }
}
но после этого возникла странная проблемма, при скролинге вниз все ряды которые появляются (снизу) окрашиваются тем же цветом что и вверху стоящий ряд за исключением первего столбца (!!! у первого столбца все отлично с фоном видимо это как-то связано с простым списком List) Вобщем вон от вышестоящего ряда дублируется на нижестоящие ряды (!!!за исключением первого!!!)

Что за лажа? Кто-то сталкивался с таким багом? можно ли что-то с этим сделать?

Старый 17.11.2008, 18:28
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 2  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
List так устроен. Он не перерисовывает компоненты, которые уже отрисованы. Он переносит ячейки уже отрисованными и загружает в них новые данные.

Попробуйте так:
Код AS3:
override public function set listData(value:ListData):void {
			super.listData = value;
                       if (int(data.stat) == 1) {
				setStyle("upSkin", CellRenderer_upSkin_Green);
                       } else {
                               setStyle("upSkin", CellRenderer_upSkin_Red);
                       }
		}
Не уверен, что сработает, но копать надо именно в эту сторону (изменение цвета фона именно при записи новых данных в ячейку).

Старый 17.11.2008, 18:59
andrey_p вне форума Посмотреть профиль Отправить личное сообщение для andrey_p Найти все сообщения от andrey_p
  № 3  
Ответить с цитированием
andrey_p

Регистрация: Jun 2007
Сообщений: 77
не помогает
Взял простой пример с
http://www.adobe.com/devnet/flash/qu.../datagrid_pt3/

и уменьшил размер грида чтоб скрол вылез, и все отображается корректно. у меня почему-то коряво, хотя все идентично.

Старый 17.11.2008, 19:05
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 4  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Нет. не идентично:

"super.drawBackground();"

Старый 17.11.2008, 19:13
andrey_p вне форума Посмотреть профиль Отправить личное сообщение для andrey_p Найти все сообщения от andrey_p
  № 5  
Ответить с цитированием
andrey_p

Регистрация: Jun 2007
Сообщений: 77
"super.drawBackground()" тоже есть просто когда постил подредпктировал для понятности и потер строку эту )

Добавлено через 1 час 17 минут
Проблема разрешилась.
дело в том что в приведенном куске кода я осмелился написать не то, что у меня в коде а некую интерпретацию. на самом деле код был таким:
Код:

Код AS3:
if (int(data.stat) == 1) {
		setStyle("upSkin", CellRenderer_upSkin_Green);
} 
if (int(data.stat) == 2) {
                setStyle("upSkin", CellRenderer_upSkin_Red);    }
}
Предполагалось что в значении 0, по умолчанию рисуется белый фон, все так и было пока не начался скроллинг. При скроллинге перерисовка для ячеек co "stat == 0" просто не выполнялась . вобщем сам виноват, чуть на адобовцев не начал грешить всердцах ))

Благодарю за отклик

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

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

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


 


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


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