Understanding the ActionScript Language > About scripting in ActionScript > How scripts flow |  |

How scripts flow

Flash executes ActionScript statements starting with the first statement and continuing in order until it reaches the final statement or a statement that instructs ActionScript to go somewhere else.

Some actions that send ActionScript somewhere other than the next statement are `if` statements, `do..while` loops, and the `return` action.

A flow chart of the `if..else` action

A flow chart of the `do..while` action

An `if` statement is called a conditional statement or a "logical branch" because it controls the flow of a script based on the evaluation of a certain condition. For example, the following code checks to see if the value of the `number` variable is less than or equal to 10. If the check returns `true` (for example, the value of `number` is 5), the variable `alert` is set and displays its value, as shown here:

    if (myNumber <= 10) {
        alert = "The number is less than or equal to 10";
    }

You can also add `else` statements to create a more complicated conditional statement. In the following example, if the condition returns `true` (for example, the value of `number` is 3), the statement between the first set of curly braces runs and the `alert` variable is set in the second line. If the condition returns `false` (for example, the value of `number` is 30), the first block of code is skipped and the statement between the curly braces after the `else` statement runs, as in the following:

    if (number <= 10) {
        alert = "The number is less than or equal to 10";
    } else {
        alert = "The number is greater than 10";
    }

For more information, see Controlling flow in scripts.

Loops repeat an action a certain number of times or until a certain condition is met. In the following example, a movie clip is duplicated five times:

    i = 0;
    do {
        duplicateMovieClip ("myMovieClip", "newMovieClip" + i, i);
        newName = eval("newMovieClip" + i);
        setProperty(newName, _x, getProperty("myMovieClip", _x) + (i * 5));
        i = i + 1;
    } while (i <= 5);

For detailed information, see Repeating an action.