Exception Handling in Flash

inctube

Erfahrenes Mitglied
Ich hab eine ganz kurze Frage, und zwar wie kann ich einen LoadMovie Fehler abfangen. Also wenn ich einen swf Film oder ein Jpg lade und dieses nicht verfügbar ist.
Würde dann gerne eine Fehlermeldung werfen um den User zu informieren.

thx inctube
 
Hi,

ich lege in diesem Fall einen Timeout fest, nach dessen Ablauf der Ladevorgang als gescheitert angesehen werden kann:
Code:
var timeout = 6000; // 6 Sekunden Karenzzeit

container.loadMovie("foo.jpg");

var stime = getTimer();

this.onEnterFrame = function() {
    var cur = container.getBytesLoaded();
    var max = container.getBytesTotal();
    if (cur > 0 && max > 0) {
        var percent = cur * 100 / max;
        // ggf. Preloader anzeigen
        if (percent >= 100) loadComplete();
    } else {
        if (getTimer() < stime > timeout) {
            loadError();
        }
    }
}

function loadError() {
    trace("Datei kann nicht geladen werden");
}

function loadComplete() {
    trace("Datei komplett geladen");
}
... Du könntest aber auch z.B. serverseitig feststellen, ob die Datei existiert.

Gruß
.
 
Also das mit dem timer hatte ich auch schon drin, allerdings passt das nicht so richtig in meine Code Struktur rein. Ich greife nämlich öfter auf die Funktion zurück, in der die Abfrage stattfindet.
Kann man den timer auch zurücksetzen
Oder gibts noch eine andere Möglichkeit
Es muss doch eine Möglichkeit geben, dieses error opening URL abzufangen, oder

thx inctube
 
Zuletzt bearbeitet:
Hi,

Ab Flash 7 könntest Du die MovieClipLoader-Klasse verwenden - die stellt diverse Handler zur Abfrage des Ladestatus zur Verfügung (hätte ich auch eher dran denken können ;)).

Als Rückgabewert einer "Ladefunktion" kannst Du diese Fehlermeldung allerdings nicht verwenden, da Daten in Flash asynchron geladen werden.

Gruß
.
 
Zurück