Custom Function Issues

Jul 28, 2015

Hi,

I'll try to keep this brief while providing all the info needed for an answer. Long story short, I had interactive slides setup to hide the Next button until all buttons were clicked AND audio completed. I'm updating to just require the buttons be clicked before showing the next button. I've deleted all references requiring audio to complete. So now the Next button appears when all required buttons are clicked (even if audio hasn't completed) but will not skip to the next slide until the audio also completes - just like before. It's like something is cached or hung up, still using the old function - even though there is nothing requiring audio to end. Running latest update to Storyline 2/Win 8.1

Any ideas? Thanks in advance.

17 Replies
Jim Barker

Slight update. I have navigation set to restricted in order to require users to watch each slide in a module. If I change to "free" then the Next button works once it changes from "hidden" to "normal" when all required triggers on a slide are clicked. Why? I want to restrict users from advancing (while allowing them to go to Previous slides they've already visited) until all triggers are clicked.

Jim Barker

Ok, it looks like Restricted navigation means the user will need to watch the duration of the slide. Got it, but here's my problem. Storyline, as far as I can tell, isn't very good with AND statements. Example: I create a variable called "Interaction Complete" with a value of 0. For every trigger/button on a slide I want clicked I add 1 to Interaction Complete, so if I want 3 buttons clicked on a slide I set the Next button with a conditional action to change to the normal state only when Interaction Complete is equal to or greater than 3. In the past, I would then add another condition that the audio also had to be completed. The problem occurs when the audio completes (second condition) before Interaction Complete (first condition) is equal or greater than 3. To compensate I create another trigger with the two conditions in reverse order in case the user hasn't clicked all 3 buttons before audio completes - this way, if they're a slower reader/clicker and the audio completes first the Next button works and vise versa. But one of those trigger statements must come first and the user may not interact with the slide in the order set up or read by Storyline.

So, how can I create a trigger/statement that basically says - Do not show the next button until the audio completes AND Interaction Complete is equal or greater than 3 regardless of the order of which happens first or second (ex: audio completes then Interaction complete = 3 -OR- interaction complete = 3 THEN audio completes)?

Jim Barker

Hi Leslie, thanks for the reply. The problem, as far as I can tell, is I need to account for viewers who may view/interact with a slide differently - i.e. "finish" a slide differently.

I may have one user watch the slide without clicking anything until the audio ends, but have another user click everything required on a slide before the audio ends. I'm having trouble setting up a function that accounts and works for either scenario - in either order. I can get one or the other scenarios to work but not both. It's like Storyline's AND function is really only working as an OR function.

Leslie McKerchie

Hi Jim! So, this scenario:

If I change to "free" then the Next button works once it changes from "hidden" to "normal" when all required triggers on a slide are clicked. 

...then it does not matter if the user clicks next now or when the audio completes, right? Or am I missing something? If you have a sample .story file with a slide I can take a look at, I'd be happy to.

Jim Barker

I couldn't be so lucky. Not working as I thought it would. Again, still seeming to run an OR rather than AND.

I can setup the Next button to display as Normal, when audio or timeline completes on condition Interaction Complete is greater than or equal to 3. Works fine if interaction complete is 3 or more BEFORE audio completes. If I allow audio to complete FIRST then click my 3 buttons, to set off my trigger, it doesn't work because even though it's an AND I didn't follow the order the function wanted.

In the above scenario If the audio/timeline ends THEN I click the 3 buttons nothing happens. If I then back the timeline up just a half a second using the seekbar, click play and let the slide finish again it DOES set off the trigger and the Next button is displayed. The function only checks once when the timeline ends. If Interaction Complete isn't 3 at that moment nothing happens. I need it to check both ways: I need Interaction Complete to check to see if the timeline/audio has ended when it is equal or greater than 3 and once timeline/audio is complete I need it to check to see if Interaction Complete is 3. I need this to by dynamic because I don't know how each viewer will interact with the slide.

I can create another function that does the reverse but again, the reverse must happen in the order I set it up in order to work. So I end up with 2 functions to account to a possible 2 different ways viewers may finish the slide - BUT Storyline only appears to follow which ever one comes first in the hierarchy of the Triggers panel. If the viewer happens to complete the slide in the way that uses the function listed second, it appears to be ignored.

Storyline appears to restrict custom functions to occur in a specific order. If the viewer doesn't do it in that order, it doesn't work.

 

Jim Barker

Thanks Leslie. Take a look at what I'm trying to do with the attached. I have navigation restricted, audio on the slide along with 3 buttons. I want to require both the slide to be finished and the 3 buttons to be clicked before the Next button is displayed. The trick is - it needs to work in either order, meaning if nothing is clicked when the slide finishes, and THEN they click the buttons it works AND the opposite - if they click all 3 buttons before the slide ends it works also. The code/triggers I have have included are the only ways i've found to account for either scenario. Do you have a better solution?

To test I need you to click all 3 buttons before the slide ends. Then close and test again but this time let the audio end without clicking any buttons. Once the slide ends then click the buttons. It works but again, wondering if you have a better solution.  Thanks!

Jim Barker

Thanks Leslie, doesn't work as intended. In the file you sent, if I click all 3 buttons before the audio ends the Next button appears and I can click next to skip before the slide/audio ends. This is because you have free navigation enabled. I can restrict navigation but then the Next button appears but the user can't go to the next screen because of course, it's restricted. This is confusing for the viewer

This is a problem because I'm developing compliancy/security awareness courses that admins want to require their users to have to watch for credit without skipping ahead and saying they did watch, makes sense?

Like I mentioned previously, I need to lock down navigation then account for the 2 possible ways a slide is interacted with: 1) All buttons are clicked BEFORE slide ends 2) Slide ends before buttons are clicked. ONLY THEN should the Next button appear and be functional in either scenario.

Showing the user the Next button before it's actually functional is poor design and confusing.

This discussion is closed. You can start a new discussion or contact Articulate Support.