0

我有一个小型 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);
    }
4

0 回答 0