我在Flex AS3.0中创建了一个组件MyImage.mxml来检查文件是否存在。如果它存在,那么我们使用此路径作为我的图像的来源。否则,我们加载“unknownperson”图像。代码如下所示:
<mx:Image xmlns:mx="http://www.adobe.com/2006/mxml"
>
<mx:Script>
<![CDATA[
import mx.events.ListEvent;
import mx.managers.PopUpManager;
import mx.controls.Alert;
import mx.controls.Text;
import mx.events.DataGridEvent;
override public function set source(value:Object):void
{
Globals.miniImage = value.toString();
var _loader:Loader = new Loader();
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function(e:Event):void{
Globals.miniImage = Intitule.getIntitule('urlPhoto',Globals.languageCode) + "unknownperson_" + Globals.languageCode + ".jpg";
});
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void{});
_loader.load(new URLRequest(encodeURI(value.toString())));
super.source = Globals.miniImage;
}
]]>
</mx:Script>
效果很好,它可以加载图像。但是,当我打开Fiddler检查所有呼叫时,加载“MyFlexProject /%20”时会不时出现404错误
仅在尝试加载图像时才会发生这种情况。
为什么要尝试进入“%20”页面(显然无法找到)?在加载图像时我有什么问题吗?
由于
答案 0 :(得分:1)
已转换为回答,因此您可以接受并关闭问题
%20是空格字符的URL编码。
您的内容中必须有一个额外的空间。也许您应该在VALUE对象上调用字符串修剪函数,并在修剪后字符串为0长度时中止下载?