Skip to main content

When onExit Runs

Here’s the sequence:
  1. Event occurs (learner taps, moves, makes a choice, etc.)
  2. Condition is checked (if any). If true, transition is allowed.
  3. onExit actions run (in the order you defined them)
  4. Transition actions run (actions on the transition itself, if any)
  5. onEntry actions of the next state run
  6. Next state is fully set up and waiting for interaction
This is important to remember: onExit runs before the next state’s onEntry.

Common onExit Actions

Adding onExit Actions

Step Properties panel with On Exit selected, showing Hide Image and Stop Timeline Animation actions

On Exit tab showing Hide Image and Stop Timeline Animation cleanup actions

1

Select a state on the canvas

Click the state node in the steps list or on the canvas.
2

In the Properties panel, select the On Exit tab

You’ll see a list of actions already in this state’s onExit (if any) and an Add Action button.
3

Click the Add Action button

The same action picker used for On Entry appears — search or browse by category.
4

Select the action type you want

Common onExit actions include Stop Audio, Hide Panel, and Set Variable.
5

Configure the action

Expand the action to set its parameters.

Pairing onEntry and onExit: Setup and Cleanup

A best practice is to pair onEntry actions with corresponding onExit actions. If you set something up in onEntry, clean it up in onExit.

Example: Audio Setup and Cleanup

State 1: “Listen to Instructions”
When exiting this state, the audio stops before the next state begins. If you didn’t stop it, the audio might continue playing while the next state’s narration tries to play — confusing for the learner.

Example: Visual Guidance

State 2: “Identify the Problem”
Highlights are removed as the learner moves to the next state. The next state gets a fresh visual canvas.

Saving Progress with onExit

Use onExit to save important data before moving to the next state: Example: Tracking Correct Answers State 3: “Quiz Question 1”
Before leaving this state, increment the score if the learner was right. This data persists to the next state and beyond. Example: Attempt Tracking State 4: “Try Again”
Every time the learner leaves this state, increment the attempt counter. Use this later in a condition to limit retries.
There is no separate “Increment Counter” action — incrementing is done with Set Variable and an AXL expression like attempts + 1.

The Complete Execution Sequence

Here’s a detailed example to show how onExit, transitions, and onEntry work together: Scenario: Learner is in “Move the Pump” state. They successfully move the pump, triggering a transition to “Confirm Position” state.

onExit Best Practices

If you play audio in onEntry, stop it in onExit. Prevents audio overlap.
If you show a text panel in onEntry, hide it in onExit (or let the next state’s onEntry show something new).
Save learner choices, scores, and attempt counts before leaving a state.
Avoid long delays. If onExit takes too long, there’s a gap between states. Learners expect smooth transitions.
Preview your training and verify that when you leave a state, audio stops, panels close, and the next state loads cleanly.

Common Mistakes to Avoid

Don’t forget to stop audio: If you play audio in onEntry but don’t stop it in onExit, the audio continues into the next state, creating a confusing experience.
Don’t reset data you need later: If you set a variable in onEntry to track something important, don’t clear it in onExit. Decide: does this variable need to persist across states?
Don’t overload onExit with too many actions: If you have 5+ onExit actions, consider whether some of that logic belongs in the next state’s onEntry instead.

Next Steps

Learn about: