1

コードをデバッグする必要はありません。メソッドをもっと探しています。

これが私の問題です。会社全体の複数の大画面テレビに読み込まれる会社のダッシュボードを開発しています。各画面はフラッシュ アプリケーションをロードして、さまざまな情報を表示します。これは私の問題を引き起こします... XML。

現在、開発中にアプリケーションをローカルで実行しています。すべてがうまく機能し、1 台のテレビでテストした場合でも問題なく動作します。しかし、このアプリケーションを開発する前に、私が雇用される前に彼らが持っていたものに対する「バンドエイド修正」である別のアプリケーションを作成しました。そのアプリケーションはうまく機能しますが、おそらく週に 1 回はロードに失敗し、すべてのコンテンツが空白になります。空白の情報が 1 日続くと、リロードされて機能し続けます。

私の新しいアプリでは、私はすでに見ているこの問題を回避しようとしています。私がやりたいのは、同じ関数を 3 回再試行できない場合は、xml を読み込んでみることです。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

XMLの読み込みにリスナーをアタッチすると、ハンドラーURLLoaderで再試行できるようになります。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 に答える