Управление Flex TileList, проблема с загрузкой изображений - PullRequest
0 голосов
/ 19 ноября 2009

У меня есть flex 3 TileList, в котором загружается несколько изображений (снимки с головы сотрудника).

Изображение, которое я загружаю в TileList, хранится в базе данных (я использую класс ByteArray и кодировку Base 64 для хранения изображений в БД).

Когда я загружаю изображения в TileList из БД, нет проблем, они отображаются правильно, но когда я прокручиваю вниз в TileList и снова прокручиваю вверх, положение изображений меняется, например, изображение на первой позиции теперь можно на 3-й и тд ....

Кто-нибудь знает, как это исправить?

Заранее спасибо!

PS: вот код ItemRenderer для TileList

приватная функция init (): void { img.load (data.imageData); }

]]>

1 Ответ

2 голосов
/ 19 ноября 2009

Проблема заключается в том, что компоненты типа списка в Flex используют пул рендеринга (т. Е. При прокрутке одни и те же рендереры повторно используются для разных элементов). Так как я предполагаю, что ваш метод init вызывается только для creationComplete или когда-нибудь в начале жизненного цикла рендерера, изменение данных не изменит изображение.

Вместо этого вы можете переопределить установленные данные

override public function set data(value:Object):void {
    super.data = value;
    if(value)
        img.load(value.imageData);
}
...