Forum Discussion

amaulaz's avatar
amaulaz
Community Member
9 days ago

Delay Visited State to show star icon + 1

Hi everyone! I am looking for a way to solve this issue in Storyline: I have to delay 2 seconds for the learner to see the star as the visited state of a button. I know an alternative solution is to create another state called completed but the triggers do not fire once I create it as part of a conditional variable: The learner can only see the completed state once getting to the correct layer in the next slide. The link to see the issue is here: Challenge

 

I'd love to read your comments or insights on how to solve this, thank you.

 

 

2 Replies

  • When an object has a Visited state, it will always change to Visited as soon as it is clicked. That's built-in functionality. 

    If you want to indicate which buttons have been clicked based on whether the user has completed content on another slide, you need to use variables and conditional triggers. Here are a few notes:

    • A "when variable changes" trigger will only run if the variable changes on the same slide as the trigger. 
    • A "when the timeline starts on this slide" trigger will run every time the user visits a slide. That's true even if the slide is set to "Resume saved state." So this "when" is useful when you want something to happen when a user returns to a slide. Use conditions to control whether the trigger's action will be performed.

     

    These resources might help: 

     

    I also highly recommend that you give all objects meaningful names. That makes development and troubleshooting easier. Personally, I don't bother trying to troubleshoot slides with default names...

  • Nedim's avatar
    Nedim
    Community Member

    amaulaz​ 

    If I were building this, I would explore a few different ways to 'trick' the default behavior of the "Visited" state so it only fires after a specific delay. Here are the two options:

    Option 1: The JavaScript Approach (Cleanest) Using the Storyline JavaScript API, we can trigger the state change after a set time without cluttering the project with extra triggers. It’s highly efficient and allows for a precise 3-second delay that doesn't feel 'laggy.'

    Option 2: The Motion Path Workaround (No-Code) If you prefer to stay within native triggers, you can use a hidden object on a 3-second motion path.

    1. Create a trigger to change the button state to "Normal" the moment it's clicked (to override the instant "Visited" state).
    2. Start the hidden object's motion path on that same click.
    3. Add a final trigger to change the button to Visited only when that motion path completes.