Spark ItemRenderer不显示内容

时间:2011-03-01 12:56:06

标签: list flex itemrenderer flex-spark

我有一个火花列表组件和相应的自定义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项目渲染器合作过,我从来没有遇到过这么多麻烦。

3 个答案:

答案 0 :(得分:0)

经过一点点摸索和检查后,我想这是我的问题的答案。也许有人可以证实这一点,但我认为它几乎可以证明:

“bitmapimage”只能从受信任(跨域策略)域加载数据。所以使用本地文件没有问题,但我正在加载远程图像,并且bitmapimage默默地关闭并且什么都不做。没有得到请求,没有。

旧的“图像”可以加载东西,无论它来自何处,所以我现在转而使用它作为解决方案。

答案 1 :(得分:0)

BitMapImage.source期待三件事之一。引用文档:

  • Bitmap或BitmapData实例。
  • 表示DisplayObject子类的类。 BitmapFill实例化该类并创建它的位图呈现。
  • DisplayObject的一个实例。 BitmapFill将其复制到Bitmap中进行填充。

听起来你正在给它一个URL位置。如果是这样,那么使用Image,而不是BitMapImage。

答案 2 :(得分:0)

p pw,确定使用这个人的方法修复它: http://polygeek.com/2452_flex_extending-spark-bitmapimage

也许这对某人有帮助。

喝彩!