Timeline and Clip Event Loops

All the loops we’ve looked at so far cause the interpreter to repeatedly execute blocks of code. Most of your loops will be of this “ActionScript-statement” type. But it’s also sometimes desirable to create a timeline loop by looping Flash’s playhead in the timeline. To do so, attach a series of statements to any frame; on the next frame, attach a gotoAndPlay( ) function whose destination is the previous frame. When the movie plays, the playhead will cycle between the two frames, causing the code on the first frame to be executed repeatedly.

We can make a simple timeline loop by following these steps:

  1. Start a new Flash movie.

  2. On frame 1, attach the following statement:

    trace("Hi there! Welcome to frame 1");
  3. On frame 2, attach the following statements:

    trace("This is frame 2");
    gotoAndPlay(1);
  4. Select Control Test Movie.

When we test our movie, we see an endless stream of the following text:

Hi there! Welcome to frame 1
This is frame 2
Hi there! Welcome to frame 1
This is frame 2

Timeline loops can do two things ordinary loops cannot:

  • They can execute a block of code an infinite number of times without causing an error.

  • They can execute a block of code that requires a Stage update between loop iterations.

This second feature of timeline loops requires a little more explanation. When any frame’s script is executed, the movie Stage is not updated visually until the end of the script. This means that traditional loop statements cannot be used to perform repetitive ...

Get ActionScript: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.