條件

ActionScript 3.0 提供三個基本的條件陳述式,可讓您用來控制程式流程。

if..else

if..else 條件陳述式可讓您測試條件,並在該條件成立時執行程式碼區塊,或是在條件不成立時,執行另一個程式碼區塊。例如,下列程式碼會測試 x 的值是否超過 20。如果超過就產生一個 trace() 函數;否則就產生另外一個 trace() 函數:

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

如果不要執行另一個程式碼區塊,則可以只用 if 陳述式,而不使用 else 陳述式。

if..else if

您可以使用 if..else if 條件陳述式來測試一個以上的條件。例如,下列程式碼不僅會測試 x 的值是否超過 20,也會測試 x 的值是否為負數:

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

如果 ifelse 陳述式後面只跟著一個陳述式,該陳述式便不需要用大括號括住。例如,下列程式碼就不使用大括號:

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

但是,Adobe 建議您永遠都使用大括號,因為如果後來陳述式加入至沒有大括號的條件陳述式,可能會產生未預期的行為。例如,在下列程式碼中,不管條件是否評估為 truepositiveNums 的值都會加 1:

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

switch

如果您有多個執行路徑均相依於相同的條件運算式,switch 陳述式就很有用。它提供的功能類似於一段很長的 if..else if 陳述式,但比較容易閱讀。switch 陳述式不會測試 Boolean 值的條件,而是會評估運算式,然後使用結果來決定要執行的程式碼區塊。程式碼區塊以 case 陳述式開頭,而以 break 陳述式結尾的。例如,下列 switch 陳述式會根據 Date.getDay() 方法傳回的天數來列印一週當中的日子:

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; 
}