Using Director > Writing Scripts with Lingo > Controlling flow in scripts > Repeating an action |
![]() ![]() ![]() |
Repeating an action
Lingo can repeat an action a specified number of times or while a specific condition exists.
To repeat an action a specified number of times:
Use a repeat with
structure. Specify the number of times to repeat as a range following repeat with
.
This structure is useful for performing the same operation on a series of objects. For example, the following repeat loop makes Background Transparent the ink for sprites 2 through 10:
repeat with n = 2 to 10 set the ink of sprite n = 36 end repeat
This example performs exactly the same action as above, but uses dot syntax:
repeat with n =2 to 10 sprite(n).ink = 36 end repeat
To repeat a set of instructions as long as a specific condition exists:
Use a repeat...while
statement.
For example, these statements instruct a movie to beep continuously whenever the mouse button is being pressed:
repeat while the mouseDown beep end repeat
Lingo continues to loop through the statements inside the repeat loop until the condition is no longer true or until one of the instructions sends Lingo outside the loop. In the previous example, Lingo exits the repeat loop when the mouse button is released because the mouseDown
condition is no longer true.
To exit a repeat loop:
Use the exit repeat
command.
For example, the following statements make a movie beep while the mouse button is pressed, unless the mouse pointer is over sprite 1. If the pointer is over sprite 1, Lingo exits the repeat loop and stops beeping. (The term rollover
followed by a sprite number indicates that the pointer is over the specified sprite.)
repeat while the stillDown beep if rollover (1) then exit repeat end repeat
See repeat with
, repeat while
, and exit repeat
.
![]() ![]() ![]() |