Ich entwickle eine Flash-Anwendung, die Informationen von einem Remote-Server mit einem URLLoader erhält. Ich habe eine Funktion, die eine Anfrage nach Informationen basierend auf der Produkt-ID erstellen wird. Wenn ein Fehler auftritt, möchte ich auf eine alternative URL zurückgreifen, aber um die alternative URL zu erstellen, muss ich die Produkt-ID kennen. Was ist die beste Methode, um festzustellen, welcher URLLoader fehlgeschlagen ist (und welche Produktanfrage fehlgeschlagen ist), damit ich die neue URL neu generieren kann?Wie kann ich ermitteln, welcher URLLoader programmatisch fehlgeschlagen ist?
Meine Funktionen sind unter:
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);
}
Ausgewählt, weil es wirklich einfach ist und die Frage elegant und mit minimalen Mengen an Code beantwortet. Wenn ich diese lange Zeit verwenden müsste oder wenn ich sie an mehr als einem Ort verwenden würde (wie bei anderen Projekten), würde ich wahrscheinlich die Lösung von Juan verwenden. – Steropes
@Steropes, froh, dass es geklappt hat. Ich stimme dem zu - Juans Lösung ist sehr elegant und versteckt die Failover-Funktionalität. – bedwyr