Условия

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 рекомендует всегда использовать фигурные скобки, поскольку если в дальнейшем к оператору условия без скобок добавляется дополнительное условие, возможно непредвиденное поведение программного кода. Например, в следующем программном коде значение positiveNums увеличивается на 1 независимо от того, получается ли в результате проверки условия значение true или нет.

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