我有一个spark list组件和一个相应的自定义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项目渲染器,我从来没有遇到过这么多的麻烦。
发布于 2011-03-01 23:01:36
呼,好吧,我用这个家伙的方法解决了:http://polygeek.com/2452_flex_extending-spark-bitmapimage
也许这会对某些人有所帮助。
干杯!
发布于 2011-03-01 22:00:20
经过一点摸索和检查,我想这就是我问题的答案。也许有人可以证实这一点,但我认为这是非常正确的:
"bitmapimage“只能从受信任的(跨域策略)域加载数据。因此,对于本地文件,这是没有问题的,但我加载的是远程图像,这样位图图像就会默默地关闭,什么也不做。没有get请求,什么都没有。
旧的"image“可以加载东西,无论它来自哪里,所以我现在切换到这个作为解决方案。
发布于 2011-03-01 22:06:08
BitMapImage.source期望三件事中的一件。引用文档:
听起来像是你给了它一个URL位置。如果是,则使用Image,而不是BitMapImage。
https://stackoverflow.com/questions/5154784
复制相似问题