條件

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

副主題

if..else
if..else if
switch

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

Flash CS3

 

有新的意見加入至這個頁面時,傳送電子郵件給我 | 意見報告

目前頁面: http://livedocs.adobe.com/flash/9.0_tw/main/00000051.html