Spark ItemRenderer不显示内容

我有一个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项目渲染器一起工作过,我从来没有遇到那么多麻烦。


经过一些摸索和检查,我想这是我的问题的答案。 也许有人可以证实这一点,但我认为这是非常重要的:

“bitmapimage”只能从可信(crossdomain-policy'ed)域加载数据。 所以使用本地文件是没有问题的,但是我正在加载远程图像,而且bitmapimage默默关闭,什么都不做。 没有要求,什么都没有。

旧的“图像”可以加载任何东西,无论它来自何处,所以我现在切换到这个解决方案。


BitMapImage.source需要三件事情之一。 引用文档:

  • 位图或BitmapData实例。
  • 代表DisplayObject子类的类。 BitmapFill实例化类并创建它的位图呈现。
  • DisplayObject的一个实例。 BitmapFill将其复制到位图中进行填充。
  • 这听起来像你给它一个URL位置。 如果是这样,那么使用Image,而不是BitMapImage。


    唷,好吧使用这家伙的方法得到了修复:http://polygeek.com/2452_flex_extending-spark-bitmapimage

    也许这会对某人有所帮助。

    干杯!

    链接地址: http://www.djcxy.com/p/34611.html

    上一篇: Spark ItemRenderer not showing contents

    下一篇: Does Spark List honour the IDropInItemRenderer interfaces?