我有一个小型 Flash 应用程序,可以加载一个小型(10 行)xml 文件。大多数时候一切都很好。但是,有时我会看到 flash 应用程序无法加载 xml 文件并引发 #2032 错误。
当应用程序无法加载 xml 文件时,它会每 15 秒重新请求一次。这些重新请求都因抛出 2032 错误而失败,但是跟踪 Apache 日志显示每个请求的 http 状态为 200。
Flash ULRLoader 收到 http 状态事件 200,然后立即显示 #2032 错误。关于这里可能发生的事情有什么想法吗?
谢谢!
代码:
public class XMLLoader
{
private var xml:XML;
private var loader:URLLoader = new URLLoader();
private var callback:Function;
function XMLLoader(c:Function = null)
{
callback = c;
}
public function loadData(url:String = null):void
{
loader.addEventListener(Event.COMPLETE, onLoaded);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.addEventListener(Event.OPEN, onOpen);
loader.addEventListener(ProgressEvent.PROGRESS, onProgress);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHttpStatus);
loader.load(new URLRequest(url + "?now=" + timeNow()));
}
private function timeNow()
{
var timeNow:Date = new Date();
return timeNow.valueOf();
}
private function onOpen(event:Event):void
{
callback("Open: " + String(event));
}
private function onProgress(event:ProgressEvent):void
{
callback("Progress: loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
private function onSecurityError(event:SecurityErrorEvent):void
{
callback("Security Error: " + event);
}
private function onHttpStatus(event:HTTPStatusEvent):void
{
callback("Http Status: " + event);
}
private function onLoaded(event:Event):void
{
xml = new XML(event.target.data);
callback("ISLD: " + event);
callback("Success", xml);
}
private function onIOError(event:IOErrorEvent):void
{
callback("IOError" + event);
}