Forum Discussion

ckenglin's avatar
ckenglin
Community Member
31 days ago

Locking down navigation in Storyline 360

I have a document that uses a lot of interactive slides. On these slides, when you click a button, audio plays. I want to prevent anything else from being clicked until the audio finishes playing. This issue only occurs when there are multiple interactive elements on a single slide. The timer setup works perfectly when there's only one object on the slide.

2 Replies

  • Hi ckenglin​! One way you could do this is by:

    1. Putting the audio file in a layer.
    2. When the user clicks the button, show the layer so the audio plays.
    3. In the slide layer settings, select "Prevent the user from clicking on the other layers." Other layers includes the base layer, so the user won't be able to click any objects in the base layer.
    4. Hide the layer when the timeline ends.
  • If more than one interactive element you could use variables (True/False) to disable all interactive elements until the audio associated with the currently clicked button finishes playing.

    1. Create a True/False Variable:

    Name it something like audioPlaying.

    Default value: False.

    1. Set the Variable When Audio Starts:

    Add a trigger to each interactive button:

    Set variable audioPlaying = True

    When user clicks [button]

    1. Disable Other Clicks While Audio is Playing:

    For each interactive object (button), add a condition to its trigger:

    Play media [audio file]

    When user clicks [button]

    If audioPlaying = False

    1. Reset the Variable When Audio Ends:

    Add a trigger to each audio object:

    Set variable audioPlaying = False

    When media [audio file] completes

     

    You can also build in Visual Feedback

    To improve UX, you could disable buttons visually while audio is playing:

    Create a "Disabled" state for each button.

    Add a trigger:

    Change state of [button] to Disabled

    When variable audioPlaying changes

    If audioPlaying = True

    And another to re-enable:

    Change state of [button] to Normal

    When variable audioPlaying changes

    If audioPlaying = False

    Do this for each Button/Audio Pair

    It ensures:

    Only one audio plays at a time.

    Users can’t interact with other elements until the current audio ends.

    This way you have more control over pacing and ye give focused learning.