Forum Discussion

kristinhall1's avatar
kristinhall1
Community Member
4 hours ago

Variables within triggers not working consistently

Hello, 

I am working on a project that includes some interaction from the user/viewer. Some of my slides have buttons that, when clicked, populate a new layer with audio. The buttons do not have to be selected in any specific order, but all buttons must be selected, therefore all additional layers are to be viewed, before advancing to the next slide.

I am having an issue with my triggers it appears. For some reason, once the timeline on the first layer completes, the trigger is activated and the project progresses to the next slide, BUT this is only happening when I've uploaded to my LMS system. When I preview the project in Articulate, it works as it should. 

For reference, I have the following triggers in place: 

Base Layer:

  • Show Layer 1 when user clicks Button:1
  • Show Layer 2 when user clicks Button:2
  • Show Layer 3 when user clicks Button:3
  • Show Layer 4 when user clicks Button:4

Layer 1:

  • Set Layer1Visited to True when the timeline ends on this layer
  • Jump to Next Slide when the timeline ends on this layer
    • if Layer1Visited = True
    • and Layer2Visited = True
    • and Layer3Visited = True
    • and Layer4Visited = True

Layer 2:

  • Set Layer2Visited to True when the timeline ends on this layer
  • Jump to Next Slide when the timeline ends on this layer
    • if Layer1Visited = True
    • and Layer2Visited = True
    • and Layer3Visited = True
    • and Layer4Visited = True

Layer 3:

  • Set Layer3Visited to True when the timeline ends on this layer
  • Jump to Next Slide when the timeline ends on this layer
    • if Layer1Visited = True
    • and Layer2Visited = True
    • and Layer3Visited = True
    • and Layer4Visited = True

Layer 4:

  • Set Layer4Visited to True when the timeline ends on this layer
  • Jump to Next Slide when the timeline ends on this layer
    • if Layer1Visited = True
    • and Layer2Visited = True
    • and Layer3Visited = True
    • and Layer4Visited = True

All variables are set to False by default, and all layers have audio. I also have slide layer properties set to hide objects on the base layer (yes), hide slide layer when timeline finishes (yes), and pause timeline of base layer (yes). 

I should add, the first slide in my presentation with these triggers works perfectly. The rest do not. Is there possibly some setting I have checked during Publishing that could cause this? I'm at a loss. 

  • kristinhall1's avatar
    kristinhall1
    Community Member

    I went through and made variables specific to each slide and its layers, then substituted those in place of what was there there initially and it works now! Thank you! 

  • kristinhall1's avatar
    kristinhall1
    Community Member

    Sorry, I was trying to figure out how to locate the .story file. I've included it here. 

    Your first solution sounds like it may be applicable... So, on the additional slides, I would need to change it to "Layer5Visited, Layer6Visited,..." so that each layer throughout the entire project has its own specific variable, is this correct? 

    • JudyNollet's avatar
      JudyNollet
      Super Hero

      Yup, the problem is using the same set of variables on multiple slides...

      Variables maintain their value until a trigger changes it. So, as I said above, after the variables change to True on the first slide where they're used, they remain True. And that's why the next slide jumps after viewing just one layer. The conditions on the trigger are met before the user gets to that slide.

      So, yes, you need different triggers for each slide. For easier programming (and troubleshooting), I suggest using a naming convention that indicates the slide and the layer. And keep the names as short as possible.

      For example, the variables on the first slide could be s1_L1done, s1_L2done, s1_L3done, and s1_L4done. The variables on the second slide could be s2_L1done, s2_L2done, s2_L3done, and s2_L4done. And so on. 

       

  • It's hard to tell for sure without seeing the .story file. But, based on your description, I'd guess that you're using the same variables—Layer1Visited, Layer2Visited, etc.—in the triggers on every slide.

    • That would explain the problem, because all the variables would = True as soon as the user completed the first slide with those triggers. 
    • The slides would work in preview if you're just previewing one slide at a time, because each preview would start with the variable default of False. 
    • The fix: use a different set of variables for each slide.

     

    If that's not the case, someone might be able to solve the issue if you upload a .story file.
    Here are the best practices for doing that:

    • Only include slides that are related to the problem.
    • Be sure objects, layers, motion paths, and variables have meaningful names.
    • If there is proprietary content, replace or delete it. For example, replace proprietary text with “ipsum lorem” text.