Bedingungen

ActionScript 3.0 umfasst drei Bedingungsanweisungen, mit denen Sie den Programmablauf steuern können.

if..else

Mit der Bedingungsanweisung if..else können Sie eine Bedingung testen und dann in Abhängigkeit davon, ob die Bedingung erfüllt ist, unterschiedliche Codeblocks ausführen. Im folgenden Beispielcode wird getestet, ob der Wert von x größer ist als 20. Ist dies der Fall, wird eine trace()-Funktion generiert. Andernfalls wird eine andere trace()-Funktion generiert:

if (x > 20) 
{ 
    trace("x is > 20"); 
} 
else 
{ 
    trace("x is <= 20"); 
}

Wenn kein alternativer Codeblock ausgeführt werden soll, können Sie die Anweisung if auch ohne die Anweisung else verwenden.

if..else if

Mit der Bedingungsanweisung if..else if lassen sich mehrere Bedingungen überprüfen. Im folgenden Beispielcode wird getestet, ob der Wert x größer ist als 20 und ob x einen negativen Wert hat:

if (x > 20) 
{ 
    trace("x is > 20"); 
} 
else if (x < 0) 
{ 
    trace("x is negative"); 
}

Wenn einer if- oder else-Anweisung nur eine Anweisung folgt, muss die Anweisung nicht in geschweifte Klammern eingeschlossen werden. Im folgenden Code werden beispielsweise keine geschweiften Klammern verwendet:

if (x > 0) 
    trace("x is positive"); 
else if (x < 0)  
    trace("x is negative"); 
else 
    trace("x is 0");

Dennoch sollten Sie stets geschweifte Klammern verwenden, da andernfalls ein unerwartetes Verhalten auftreten kann, wenn später Anweisungen zu einer Bedingungsanweisung hinzugefügt werden, die keine geschweiften Klammern enthält. Im folgenden Beispielcode wird Wert von positiveNums um 1 erhöht, unabhängig davon, ob die Bedingung als true ausgewertet wird:

var x:int; 
var positiveNums:int = 0; 
 
if (x > 0) 
    trace("x is positive"); 
    positiveNums++; 
 
trace(positiveNums); // 1

switch

Die switch-Anweisung eignet sich insbesondere dann, wenn mehrere Ausführungspfade vom gleichen Bedingungsausdruck abhängen. Sie bietet eine ähnliche Funktionalität wie eine lange Folge von if..else if-Anweisungen, die Lesbarkeit ist jedoch besser. Anstatt eine Bedingung auf einen booleschen Wert zu testen, wertet die switch-Anweisung einen Ausdruck aus und ermittelt den auszuführenden Codeblock anhand des Ergebnisses. Codeblöcke beginnen mit einer case-Anweisung und enden mit einer break-Anweisung. In der folgenden switch-Anweisung wird anhand der von der Date.getDay()-Methode zurückgegebenen Zahl der entsprechende Wochentag ausgegeben:

var someDate:Date = new Date(); 
var dayNum:uint = someDate.getDay(); 
switch(dayNum) 
{ 
    case 0: 
        trace("Sunday"); 
        break; 
    case 1: 
        trace("Monday"); 
        break; 
    case 2: 
        trace("Tuesday"); 
        break; 
    case 3: 
        trace("Wednesday"); 
        break; 
    case 4: 
        trace("Thursday"); 
        break; 
    case 5: 
        trace("Friday"); 
        break; 
    case 6: 
        trace("Saturday"); 
        break; 
    default: 
        trace("Out of range"); 
        break; 
}