条件语句

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 语句不是对条件进行测试以获得布尔值,而是对表达式进行求值并使用计算结果来确定要执行的代码块。代码块以 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; 
}