Skip to main content
zagemello
Participating Frequently
July 7, 2016
Answered

Micro-Navigation (using Advanced Actions) misbehaving in published project

  • July 7, 2016
  • 2 replies
  • 879 views

I'm building in Captivate 9 and need to give the user the option to skip back and forth to specific "scenes" in a slide.  These scenes don't have any specific markers - they're just sub-sections of the lesson on the slide.

I followed some excellent tips gleaned from Lilybiri​'s blog articles to create my own Forward and Back buttons, that skip to the next breakpoint.

In order to achieve this, i've created an Advanced Action with 9 decisions (one for each scene), and each decision says "if currentFrame is between x and y, go to openingFrame + z.  I used the On Enter property of the slide to set the openingFrame variable on entering the slide.  This way, when the button is tapped (either Forward or Back), the lesson skips to the beginning or end of the current "scene".

Well, I spent a good 2-3 hours previewing the slide and tweaking the Advanced Action till it was working exactly as desired, and then I published...

To my great disappointment, on clicking the Forward button from the beginning of the slide, the lesson skipped right to the end of the slide (which is the action for decision 9 and should only activate if the currentFrame > 2041.

When I then click the Back button from the end of the slide, it would only take me back to frame 2030 (where it should take me back to the beginning of the slide, through progressive clicks).

I then tried previewing the whole project, and got the same result.

It seems the Advanced Action only works as intended if I preview the specific slide, but as soon as the other slides are published, all but the last decision of the Advanced Action are ignored!

As I write this, I realise a workaround could be to break up the slide into a number of slides - each holding a scene. That would mean a lot of extra work, and give a very messy result. Particularly as I'm planning a number of similar lesson sections, and want to end up with a long list of slides that are actually part of the same lesson section.

The other alternative is to learn Javascript and use that to create the nested IF statement - which seems like a lot of overhead and head-scratching to achieve something that looks like it's designed to work within Captivate 9.

I hope that makes sense - would be very grateful if anyone is able to shed any light?

This topic has been closed for replies.
Correct answer Lilybiri

How/When is the variable 'openingframe' getting its value? Which event is used to assign a value to that var?

Which event is triggering this conditional action? Do you have other interactive objects on the slide with that event? Maybe post a screenshot of the timeline.

I suspect this could be done in another way, less complicated. But I need more information. Last jump is over 2063 frames, which means little bit more than 1 minute: is that the duration of one slide? Frame navigation is never very precise, personally I would not use it for such big jumps, but try to split that slide in multiple slides, which would mean you'll have more than one start frame and you'll not have that big numbers. Did you track the action by inserting both variables 'openingframe' and 'cpInfoCurrentFrame' in a text container?  Just a couple of ideas, because I suspect the value of 'openingframe' is not correct. Hence my first questions.

2 replies

zagemello
zagemelloAuthor
Participating Frequently
July 8, 2016

OK, problem solved!

I was correctly incrementing my frame calculations to include the opening frame of the slide (given that it's the 3rd slide in the deck), when telling the playhead where to start from, but I wasn't including this increment in calculating the conditional parameters.

In retrospect, this explains why the buttons behaved well when I only previewed the current slide (opening frame = 1), but misbehaved terribly when I published the whole lesson - (opening frame=276).

Thanks to Lilybiri​ for the great suggestion of displaying the openingFrame variable - helped me to see what was right in front of me!

My solution includes assigning not only the openingFrame variable when entering the slide, but also a variable to mark the start of each of my scenes - which I then use in the conditional parameters of the different decisions in the Advanced Actions for the buttons.

Thanks also to RodWard​ for the helpful blog post on caveats for variables at Introduction to Captivate System and User Variables | Infosemantics Pty Ltd

Lilybiri
Legend
July 7, 2016

Could you post a screenshot (maybe more than one) of the advanced action? Use the Preview button (first button in the top left control panel, looks like a play button) to have more info on one screenshot. You can collapse some similar decisions as well. I'm asking this because I often did see conditional advanced actions where the sequence logic was wrong.

Moreover: you use CP 9 (9.0.1.320?) but do not mention which output: SWF or HTML? Because for HTML there is a wonderful new widget from InfoSemantics, CpExtra which allows to call an advanced action (or a shared action) from another advanced action.

zagemello
zagemelloAuthor
Participating Frequently
July 7, 2016

Thanks for the prompt reply, Lilybiri​ - apologies, yes: CP 9.0.1.320 on Mac Yosemite (Safari browser).

Yes, I did the CpExtra widget, but this is a hobby, and not keen to spend additional money just yet.

Here's the screenshot - decisions 2 to 8 are identical:

Lilybiri
LilybiriCorrect answer
Legend
July 7, 2016

How/When is the variable 'openingframe' getting its value? Which event is used to assign a value to that var?

Which event is triggering this conditional action? Do you have other interactive objects on the slide with that event? Maybe post a screenshot of the timeline.

I suspect this could be done in another way, less complicated. But I need more information. Last jump is over 2063 frames, which means little bit more than 1 minute: is that the duration of one slide? Frame navigation is never very precise, personally I would not use it for such big jumps, but try to split that slide in multiple slides, which would mean you'll have more than one start frame and you'll not have that big numbers. Did you track the action by inserting both variables 'openingframe' and 'cpInfoCurrentFrame' in a text container?  Just a couple of ideas, because I suspect the value of 'openingframe' is not correct. Hence my first questions.