Flex ItemRenderer图像未在运行时出现

时间:2011-01-18 18:11:18

标签: flex image runtime itemrenderer

在datagrid中我有一个ItemRenderer(它扩展了UIComponent),它根据数据值加载图像,例如:

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

当我运行我的应用程序时,图像(标志)出现在ItemRenderer中。当我将应用程序构建并部署到BlazeDS中作为SWF文件时 - 图像不会出现。相反,Internet Explorer中会出现标准的“缺少图标”链接。

据我所知,我的ANT构建脚本包含上面的目录“assets / images / flags /”以及所有图像到SWF文件中。

这是相对路径问题吗?不确定,任何帮助都会被证实。

由于 麦克

1 个答案:

答案 0 :(得分:2)

当您将路径指定为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]];