1

我不需要对我的代码进行任何调试,我正在寻找更多的方法。

这是我的问题。我正在开发一个公司仪表板,它将加载到公司范围内的多台大屏幕电视上。每个屏幕都会加载我的 Flash 应用程序以显示各种信息。这提出了我的问题...... XML。

现在我在开发时在本地运行我的应用程序。一切都很好,即使我在一台电视上测试过,它也运行良好。然而,在开发此应用程序之前,我为他们在我工作之前所拥有的东西做了另一个“创可贴修复”。该应用程序运行良好,但可能每周一次加载失败并且所有内容都变为空白。在 1 天的空白信息后,它会重新加载并继续工作。

在我的新应用程序中,我试图围绕我已经看到的这个问题进行计划。我想做的是尝试加载 xml,如果它无法再次尝试相同的功能 3 次。如果它失败了3次,那么它应该被打破。:)

对我来说,这听起来像是一个 try/catch 语句,但我似乎无法让它以我想要的方式工作。我觉得好像这是我想太多了。

function loadXML ()
    var i:Number = 0;
    do {
        try{
            XMLLoader.load(new URLRequest("myXMLURL"));
        } catch (error:Error) {
            i++
          }
        }
    while(i < 3)
}

任何反馈或确保 xml 不会失败的任何其他方法将不胜感激。谢谢

4

1 回答 1

1

而不是这样的循环,您应该使用在这些情况下调度的内置事件,例如IOErrorEvent.

如果您将侦听器附加到URLLoader加载 XML,您将能够在IOErrorEvent处理程序中重试:

function loadXML():void
{
    var ldr:URLLoader = new URLLoader();

    ldr.addEventListener(IOErrorEvent.IO_ERROR, error);
    ldr.load( new URLRequest("document.xml") );
}


function error(e:IOErrorEvent):void
{
    loadXML();
}

URLLoader这是在类似情况下调度的其他事件的列表。

于 2013-02-06T23:00:05.863 回答