條件
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");
}
如果 if 或 else 陳述式後面只跟著一個陳述式,該陳述式便不需要用大括號括住。例如,下列程式碼就不使用大括號:
if (x > 0)
trace("x is positive");
else if (x < 0)
trace("x is negative");
else
trace("x is 0");
但是,Adobe 建議您永遠都使用大括號,因為如果後來陳述式加入至沒有大括號的條件陳述式,可能會產生未預期的行為。例如,在下列程式碼中,不管條件是否評估為 true,positiveNums 的值都會加 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;
}