2010-09-23 270 views
0

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

这里是我的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> 

回答

0

那么对于初学者,您的渲染是错误的。回收时会遇到问题。

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

它是一个棘手的问题,我建议阅读它documentation