如何从FileReferenceList显示图像?

时间:2010-09-23 20:38:21

标签: flex actionscript-3

我有一个FileReferenceList我希望在DataGrid中显示图像;目前我收到以下错误:Only one download, upload, load or save operation can be active at a time on each FileReference.以下是我的代码;有谁知道如何解决我得到的错误?感谢。

这是我的DataGrid:

<s:Panel>
<mx:DataGrid id="imageGrid" width="100%" height="100%" dataProvider="{imageFiles}">
<mx:columns>
<mx:DataGridColumn itemRenderer="renderers.GridImgRenderer" headerText="Image"/>
<mx:DataGridColumn dataField="name" headerText="Image Name"/>
<mx:DataGridColumn dataField="size" headerText="Image Size"/>
</mx:columns>
</mx:DataGrid>
<s:controlBarContent>
<s:Button id="browse" label="Browse" click="browseHandler(event)"/>
<s:Button id="upload" label="Upload"/>
</s:controlBarContent>
<s:controlBarLayout>
<s:HorizontalLayout horizontalAlign="center" paddingBottom="5" paddingTop="5"/>
</s:controlBarLayout>
</s:Panel>

这是我的渲染器:

<?xml version="1.0" encoding="utf-8"?>
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" 
xmlns:mx="library://ns.adobe.com/flex/mx"  
focusEnabled="true" creationComplete="init()">
<fx:Script>
<![CDATA[
private function init():void
{
data.addEventListener(Event.COMPLETE, function(event:Event):void 
{
imagePreview.source = event.target.data;
});
data.load();
}
]]>
</fx:Script>
<mx:Image id="imagePreview" width="200" maintainAspectRatio="true" scaleContent="true"/>
</s:MXDataGridItemRenderer>

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

对于初学者来说,你的渲染器是错误的。当它们被回收时你会遇到问题。

要回答您的主要问题,您可能会遇到有关文件访问和用户启动事件的安全问题。

这是一个棘手的问题,我建议阅读documentation就可以了!