![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2011
Сообщений: 61
|
Создаю спарк таблицу, под один столбец создаю ItemRenerer.
В этом ItemRenderer-е показываю иконку (BitmapData) этой строки. Все работает, кроме одного странного эффекта: при первой прокрутке вниз таблицы (таблица довольно большая) все картинки каждой строки показывает нормально..Но при прокрутки обратно уже показывает одинаковые картинки (т.е. кеширует где-то картинки, которые отображаются в видимой части таблицы, и показывает только их даже для других строк, при прокрутке туда-обратно)... Как-то можно заставить показывать иконки нормально? |
|
|||||
|
Регистрация: Apr 2011
Сообщений: 61
|
<?xml version="1.0" encoding="utf-8"?> <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true"> <fx:Script> <![CDATA[ [Bindable] private var _bitmapData:BitmapData; override public function prepare(hasBeenRecycled:Boolean):void { if(data != null && _bitmapData == null) { _bitmapData = data.bitmapData as BitmapData; } } ]]> </fx:Script> <s:Image source="{_bitmapData}" maxWidth="60" maxHeight="30"/> </s:GridItemRenderer> Решил: <?xml version="1.0" encoding="utf-8"?> <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true"> <s:Image source="{data.bitmapData}" maxWidth="60" maxHeight="30"/> </s:GridItemRenderer> Последний раз редактировалось F10; 06.09.2011 в 18:46. |
|
|||||
|
Ошибка у вас в условии. ItemRenderer'ы используются повторно и при втором заходе _bitmapData != null, там данные предыдущей картинки.
Нафига там вообще байндинг? Вы используете скинирование для Image? Если нет, то используйте BitmapImage <?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true">
<fx:Script>
<![CDATA[
private var _data:Object;
override public function set data(value:Object):void
{
if (_data == value)
return;
super.data = value;
_data = value;
if(_data != null && _data.bitmapData != null && _data.bitmapData !== image.source)
{
image.source = data.bitmapData as BitmapData;
}
}
]]>
</fx:Script>
<s:BitmapImage id="image" maxWidth="60" maxHeight="30"/>
</s:GridItemRenderer>
__________________
משיח לא בא משיח גם לא מטלפן Последний раз редактировалось alatar; 06.09.2011 в 19:24. |
|
|||||
|
Регистрация: Apr 2011
Сообщений: 61
|
Спасибо..Теперь понял..
|
![]() |
![]() |
Часовой пояс GMT +4, время: 05:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|