私はURLLoaderを使用してリモートサーバーから情報を取得しているフラッシュアプリケーションを開発しています。私は製品IDに基づいて情報の要求を作成する機能を持っています。エラーが発生した場合、別のURLにフォールバックしますが、代替URLを作成するには、製品IDを知る必要があります。新しいURLを再生成できるように、どのURLLoaderが失敗したか(どの製品要求が失敗したか)を判断する最良の方法は何ですか?どのURLLoaderがプログラムで失敗したかをどのように判断するのですか?
私の機能は以下の通りです:
function loadData(productID:String):URLLoader {
var productURL:URLRequest = new URLRequest("/path/to/product/" + productID);
var dataLoader:URLLoader = new URLLoader();
dataLoader.addEventListener(Event.COMPLETE, parseData);
dataLoader.addEventListener(IOErrorEvent.IO_ERROR, handleDataError);
dataLoader.load(productURL);
return dataLoader;
}
function handleDataError(e:IOErrorEvent) {
var productID:String = ???;
var altProductURL:URLRequest = new URLRequest("/alternate/path/to/product/" + productID);
var dataLoader:URLLoader = new URLLoader();
dataLoader.load(altProductURL);
}
これは本当にシンプルで、最小限のコードで優雅に質問に答えるため、これを選択しました。この長期的な使用が必要な場合や、複数のプロジェクト(複数のプロジェクトなど)で使用する場合は、おそらくJuanのソリューションを使用します。 – Steropes
@Steropes、うまくいきました。私は同意します - Juanのソリューションは非常にエレガントで、フェールオーバー機能をうっかり隠しています。 – bedwyr