It looks like you're new here. If you want to get involved, click one of these buttons!
(set: $counter to 0)
(set: $counter to it + 1)
(if: $counter is 10)[(stop:)]
(set: $list to (array: "Element 1", "Element 2", "Element 3", "Element 4", "Element 5"))
(set: $index to 0)
Using a loop to display the contents of an array:
(display: "Display Element")
(set: $index to it + 1)(print: $list's ($index))
(if: $index < $list's length)[(display: "Display Element")]
There are a couple of ways to emulate the functionality depending on exactly what you are trying to do within the loop.
One method is to use a (live:) macro with an embedded (stop:) macro.
From your comment I am guessing that you are using the 'looping' to update the screen on each 'iteration' (firing of the timer event). The (live:) macro was not designed for the purpose it's being used for in this use-case.
note: The (live:) macro is a background thread based timer event and as far as I know the refreshing is due to the process focus switching between the foreground thread that allows the user to interact with the screen and the background thread used by the timer, which triggers a screen refresh due to the page being updated.
Another method is to use passage recursion to simulate looping, the following example consists of two passages: Main and Display Element
a. Main passage b. Display Element passage: note: the problem with this methods is that the contents of each iteration is nested/embedded within the content of the previous iteration and there is a limit to the maximum depth that nesting can become before the web-browser throws an error.