Flex ItemRenderer Изображения не отображаются во время выполнения - PullRequest
1 голос
/ 18 января 2011

в сетке данных У меня есть ItemRenderer (который расширяет UIComponent), который загружает изображения на основе значения данных, например:

 _img.source = "assets/images/flags/" + value[dglistData.dataField] + ".gif"; 

Когда я запускаю свое приложение, изображения (флаги) появляются в ItemRenderer.Когда я собираю и внедряю приложение в BlazeDS в виде SWF-файла - изображения не появляются.Вместо этого есть стандартная ссылка «отсутствует значок», которая появляется в Internet Explorer.

Насколько я могу судить, мой скрипт сборки ANT включает в себя вышеуказанный каталог "assets / images / flags /" и все изображения вSWF-файл.

Это проблема относительного пути?Не уверен, что любая помощь будет оценена.

Спасибо, Майк

1 Ответ

2 голосов
/ 18 января 2011

Когда вы назначаете путь как source Flash Player пытается загрузить изображения через HTTP-запросы.Следовательно, встраивание ваших изображений в SWF не дает никакого эффекта.

Существует два возможных решения.Либо разверните папку, содержащую ваши изображения, на сервере и используйте соответствующий путь в качестве source, либо вставьте все свои изображения в SWF.

Простой пример второго решения.Код предполагает, что value[dglistData.dataField] соответствует одной из переменных с метаданными [Embed].

[Embed(source='assets/images/flags/Image1.png')]
private var image1:Class;

[Embed(source='assets/images/flags/Image2.png')]
private var image2:Class;

[Embed(source='assets/images/flags/Image3.png')]
private var image3:Class;

// access the image like this...
_img.source = this[value[dglistData.dataField]]; 
...