Copy link to clipboard
Copied
Hi everybody,
I've been working on what I thought was a simple advanced action to essentially hide a slide and disallow access until an interaction is successfully completed. For some reason I can't get it to work and I can't find the error in my logic. I'm hoping fresh eyes/brains will catch what I can't!
Slide A is part 1 of a 2-part interaction. Upon visiting slide A, a variable (VAR) is assigned '0'. At the end of the advanced action to verify the correct answer, VAR is assigned '1' when the answer is correct.
Slide B is part 2 of the interaction. I want this slide to only be accessible after part 1 is successfully completed. After the slide has loaded there's an action to assign a second variable, var_slide_status with 'visited'.
Slide C comes after B and is just a regular slide, not part of the interaction. On slide entry, VAR is assigned '2'.
Slide B has a validation advanced action that manages different navigation scenarios, it goes something like this (using multiple decision blocks):
Right now, the navigation isn't working as expected. The back and forward skipping Slide B works fine if Slide A is not answered correctly or isn't attempted. Slide B also shows up fine when Slide A is answered correctly. The problem lies when Slide B is accessed and I move forward to Slide C. Every time I click back from Slide C, instead of going back to revisit Slide B as I hoped, Slide C reloads itself. If I click twice really fast, it will jump to Slide A, but never Slide B even though it has already previously been visited. Then when it takes me back to Slide A, when I go forward
I hope this makes sense because I had a time figuring out to begin with. It makes sense to me but clearly I'm not doing something right. Can anyone take a look and figure out what I'm doing wrong?
Copy link to clipboard
Copied
Please, post a screenshot of the advanced actions.
Sent from my iPad
Copy link to clipboard
Copied
Yes of course, sorry I didn't think to do that before!
Just to preface, my naming conventions are not ideal as you'll see one variable and the advanced action have the same name, so hopefully that does't confuse.
Here's Slide A on enter, and then the validation of the interaction:
Here's Slide B, on enter and the decision blocks within that advanced action:
And here's Slide C on enter:
Copy link to clipboard
Copied
Sorry, you seem to be unaware of the Preview action button that exists for conditional actions, which will show the total work flow of the action with all decisions: look in the top control panel, there is a Play icon (first button), which will open the Preview Action window. I suspect something is awry with the sequence of your decisions/commands but it is difficult to read this from separate screenshots.
Another tip: naming convention not ideal is a serious underestimation. NEVER use the same name twice, please. There are only a few circumstances where Captivate will not go crazy if you use the same name twice. This could be one of the origins of your issues.
You use several decisions On Enter for slide B, but the action that will skip slide B when going backwards should be triggered by the Back button, I don't understand why you are putting that in the On Enter action at all. Maybe post also partially the content of Advanced Interaction view (F9) to see which actions are triggered by which events.
Copy link to clipboard
Copied
I was totally unaware of both the advanced action preview and the advanced interaction view...so thank you! I'm still new to Captivate and figuring it all out so simple tips like these are very helpful!
As far as having an action occur when the 'Back' button is clicked, how exactly would I do that? I'm using the in-built playbar controls rather than custom buttons for navigation.
Here are some screenshots of the views you mentioned, hopefully this is more clear as to what's going on. Also, I changed the advanced action name so it is unique rather than in conflict with the variable name (I tested and it made no difference as far as the functionality).
Copy link to clipboard
Copied
I'm trying to figure out what you exactly want to achieve.
Another tip: do not use the default playbar when you start working with navigation changed by advanced actions, but use custom navigation buttons. At this moment you are limiting the 'events' that can trigger an advanced action to the slide events, with custom navigation you'll have the Success events of the buttons as well. It would then be much easier to skip a slide when navigating back or Forward. Moreover, with most playbars, you'll have the progress bar. The user can always scrub that progress bar to end up on any slide, at any frame. That is clearly not what you want in this case.
Let me try to translate your scenario:
My recommendation: as you can read in my long translation history above I would use a number (Boolean) for v_visit as well. When slide 28 is not yet visited, v_visit == 0 (default value, or set On Enter like v_check), when it is visited give it the value 1. The last condition will then become more trustworthy:
This situation would happen if the user was on slide 29 before ever having entered slide 28, correct? Is that possible?
Copy link to clipboard
Copied
Unfortunately, I'm stuck with the default playbar for now.
I addressed your points in blue below.
Let me try to translate your scenario:
My recommendation: as you can read in my long translation history above I would use a number (Boolean) for v_visit as well. When slide 28 is not yet visited, v_visit == 0 (default value, or set On Enter like v_check), when it is visited give it the value 1. The last condition will then become more trustworthy:
This situation would happen if the user was on slide 29 before ever having entered slide 28, correct? Is that possible? I agree and changed the variable values. Yes, a user would be on 29 before 28 if they did not attempt or answer the question correctly on slide 27.
After making the changes you suggested the action reads much more plainly to me, but for the life of me I still can't figure out why it isn't working. Here's a preview of the action after the changes I made:
Copy link to clipboard
Copied
What exactly doesn't work correctly now?
Copy link to clipboard
Copied
The navigation works fine when the question on slide 27 is not attempted--slide 28 is skipped and the user arrives on slide 29. Also moving backwards from slide 29 in this scenario correctly skips over slide 28 and brings the user back to slide 27.
The problem is that when the answer is provided correctly and the user moves on to slide 28. The variable cp_visited should be assigned '1' to allow that slide to be accessed from now on, whether navigating forward from 27 or backward from 29. However, what happens is that after the user is done with slide 28 and moves on naturally to 29, going backward results in slide 29 reloading itself. It appears to attempt to move back to 28 only to be forwarded right back to 29. When I use the TOC to navigate back to 27 and then attempt to move forward using the 'forward' button on the playbar (without re-attempting the question), it skips over 28 even though cp_visited should still be equal to '1' and therefore allow entry to the page.
Copy link to clipboard
Copied
Sorry that I didn't answer yet (so busy at this moment). The only way to help you is that I create a similar situation in a test file, to offer you an advanced action that could be functional. I hope to find some time today.