2011-03-01 4 views
0

Я компонент список искры и соответствующий пользовательский itemrenderer:Спарк ItemRenderer не показывает содержание

Список компонентов:

<s:List id="albumImagesList" itemRenderer="the.namespace.for.XYZImageRenderer" useVirtualLayout="false" width="400" height="160"> 
    <s:layout> 
     <s:TileLayout requestedColumnCount="5" 
       requestedRowCount="2" 
       rowHeight="80" 
       columnWidth="80" 
       horizontalGap="0" 
       verticalGap="0" /> 
    </s:layout> 
</s:List> 

визуализации элементов:

<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       autoDrawBackground="true" width="100%" height="100%"> 
    <s:states> 
     <s:State name="normal" /> 
    </s:states> 

    <s:BitmapImage source="{data.image_path}" width="70" height="70" horizontalCenter="0" verticalCenter="0" /> 

</s:ItemRenderer> 

Это все хорошо и денди, данные заселяются правильно, и я подтвердил, что свойство data.image_path прибывает безопасно и звучит внутри itemrenderer.

Моя единственная проблема: изображение не отображается. Я не уверен, что он вообще не отображается, или если это просто не видно.

Кто-нибудь видит что-то на первый взгляд? Я что-то принципиально неправильно здесь? Раньше я работал с рендерером mx, и у меня никогда не было таких проблем с ними.

+0

На первый взгляд все кажется прекрасным. Я предлагаю вам разместить на ваших компонентах mxml, чтобы проверить, правильно ли загружено изображение, т.е. image_path действителен в вашем случае. –

+0

Я проверил все это, и путь верен, данные поступают туда, и только этот глупый элемент bitmapimage вызывает проблемы ... НО: см. Мой предполагаемый ответ ниже. – DasAntonym

ответ

0

уф, хорошо получил это исправляется подход этого парня: http://polygeek.com/2452_flex_extending-spark-bitmapimage

может быть, это будет помощь для кого-то.

ура!

+0

Да, Дэн Скалы. Но почему все эти попытки использовать BitMapImage вместо просто Image? Если вы считаете, что это лучший ответ, обязательно отметьте его как таковой. – JeffryHouser

+0

вы абсолютно правы. я просто увлекся тем, что больше не использовал компоненты ореола. не спрашивайте почему. я бы с радостью отметил хорошие ответы, но, похоже, моя репутация ужасно низкая. – DasAntonym

0

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

«bitmapimage» может загружать только данные из доверенных доменов с поддержкой доменов (crossdomain-policy'ed). поэтому с локальными файлами это не проблема, но я загружаю удаленные изображения и с этим bitmapimage молча выключается и ничего не делает. нет получения запроса, ничего.

Старый «образ» может загружать материал независимо от того, где он возник, и поэтому теперь я перехожу к этому как к решению.

+0

Политика CrossDomain относится к Flash Player и не применяется по-разному к каждому классу. Изображение должно иметь те же ограничения доступа, что и BitMapImage. Если у вас есть доказательства в противном случае, я бы с удовольствием это увидел. – JeffryHouser

+0

да, f ** k me, это было слишком рано ... такой же проблема есть. и здесь идет дополнительный обходной час. – DasAntonym

0

BitMapImage.source ожидает одну из трех вещей. Цитировать из документов:

  • Образ Bitmap или BitmapData.
  • Класс, представляющий подкласс объекта DisplayObject. BitmapFill создает экземпляр класса и создает его растровое изображение.
  • Экземпляр объекта DisplayObject. BitmapFill копирует его в Bitmap для заполнения.

Похоже, вы указываете URL-адрес. Если это так, используйте Image, а не битмап.

+0

Да, я все испортил. изображение для загрузки, растровое изображение для встраивания или публикации битмапдатов. – DasAntonym