[ascoders] AS2 und Rückgaben

Hallo,
ich habe einmal eine Frage zu den Funktionsrückgaben von ActionScript. Leider 
ist in Flash ja nicht so etwas wie in C möglich, dass man eine Funktion auch 
mittendrin unterbrechen kann und sie den Wert zurückgibt

public function test (wert:Number):Number
{
        if (wert == 1) { return 9; }
        if (wert == 2) { return 8; }
        if (wert == 3) { return 7; }
        // ... nur ein Beispiel : Das geht ja leider nicht
}

Und das bringt micht auch schon zu dem Problem, welches ich habe.

Ich habe eine Klasse für eine kleeine Diashow und auch eine Methode, die alle 
Bilder auf einmal läd.

public function ladeAwardBilder (pfad:String, bilder:Array):Boolean
{
        var loader:MovieClipLoader = new MovieClipLoader();
        var bildListener:Object = new Object();
        // ...
        
        bildListener.onLoadInit = function (ziel_mc)
        {
                counter++;
                if (counter ==  bilder.length)
                {
                        loader.removeListener(bildListener);
                        return true;
                        
                }
        }
        for (i=0 ; i<alleBilder.length ; i++)
        {
                j++;
                buehne.mc_bilderLeiste.createEmptyMovieClip("bild"+j, j);
                loader.loadClip(pfad+""+alleBilder[i].datei, 
buehne.mc_bilderLeiste["bild"+j]);
                // ...
        }
}


Im Programm will ich das ganze jetzt eigentlich nur so aufrufen:

bla = new blaKlasse();

if (bla.ladeAwardBilder("ordner/", arraymitBilder))
{
        // bilder sind geladen und es kann weitergehen
}

Aber sowas ist ja nicht möglich. Also musste ich das, aus meiner Sicht ziemlich 
umständlich machen, in dem es in der Klasse noch eine Statusvariable gibt
ActionScript:

private var geladen:Boolean = false

die dann auf true gesetzt wird, wenn alle Bilder geladen wurden.

Und in der Klasse gibt es noch eine Methode

public function get_LadeStatus():Boolean
{
        return geladen;
}

Der Aufruf erfolgt dann so:

bla = new blaKlasse();
bla.ladeAwardBilder("ordner/", arraymitBilder);

this.onEnterFrame = function ()
{
        if (bla.get_LadeStatus())
        {
                delete this.onEnterFrame;
                // bilder sind geladen und es kann weitergehen
        }
}

Das funktioniert zwar auch, aber ich finde das etwas umständlich mit diesem 
onEnterFrame. Gibt es eine elegantere Lösung?


--------------------------------------------------------------
Archiv   : http://www.freelists.org/archives/ascoders/
RSS      : http://www.freelists.org/archives/ascoders/feed.rss
Optionen : http://www.freelists.org/list/ascoders
--------------------------------------------------------------

Other related posts: