One of my Captivate friends asked to show him by example the possibilities of navigation using frame numbers. Great idea for a blog post, hope it will help you too.
Every Captivate users does know how to navigate to the next, the previous or another slide. But navigation within a slide is a bit more complex, that is what I call 'micro-navigation'.
Play this movie to understand what I will try to explain. It has 5 slides:
- slide Intro with an Effect on the Text Caption, try the button Replay to see the playhead returning to the first frame
- slide Choice where you'll be asked to choose a type of object; to illustrate the Replay again, watch the fading in effect on the Text Captions; Replay will not result in resetting the Radiobuttons widget, it is the widget coming with Captivate that doesn't have this functionality (as available in Jim Leichliter's extended version)
- slide Objects1 where the playhead will jump immediately to the chosen object, and stop; you can release the playhead by the Continue button or go to the Next slide; again I provided the Replay button, which will jump to the first frame of the slide and you'll be able to see all the objects
- slide Objects2 where the playhead will jump immediately to the chosen object, and playhead will continue on the timeline
- slide End with an Exit effect that has again a Replay button
Frames and variables
Captivate's output is a movie, and like all movies it has a frame rate: during each second 30 frames are running before your eyes, and due to that speed it results in a continuous movement. You can change that framerate of 30fps but I'll keep with it in this post. This means that:
- a slide with a default duration of 3secs has 3x30 = 90 frames
- if you insert a default button or Text Entry Box, with its default duration of 3secs (90 frames), it will by default pause at 1,5secs which means after 45 frames
- if you insert a default click box on that slide for the duration of that slide, it seems to pause at the end of the slide, but really pauses at frame 87 of that slide
- if you have a long project, check the total number of frames in the Project Info panel (Captivate 5.5 only)
rdinfoCurrentFrame: offers you the number of the frame where the playhead is at that moment; if you watched the sample movie carefully, you will have seen that I'm showing the value of this variable continuously, inserted a text caption with that variable on the master slide
rdcmndGotoFrame: allows you to move the playhead to a frame with a certain number and nothing else, the playhead will not continuerdcmndGotoFrameAndResume: same as the previous one but now the playhead will continue its journey on the timeline
Fine, but mostly I will add a user variable v_startframe. Why? Because of my laziness, I do not want to calculate the absolute number of a frame that sits 1.3secs from the start of slide 45 of a project. First thing when needing micro-navigation: create a user variable that will store the number of the first frame of each slide. It can be reused for each slide, which means that the small advanced action that you'll need to create to store that value can be reused without any change as well.
Replay = navigate to first frame of the slide
It is as simple as that:
- store the number of the first frame of the slide in the user variable v_startframe by executing this standard advanced action on entering the slide:
Assign v_startframe with rdinfoCurrentFrame
the second statement is a good practice for standard actions to avoid that the playhead just stops
this advanced action is used in the sample file for the slides 1 (Intro), 2 (Choice) and 5 (End); it is incorporated in an advanced conditional action for slides 3 and 4.
- create another standard advanced action to be triggered by the button Replay:
Assign rdcmndGotoFrameAndResume with v_startframe
not necessary to add Continue here, because of the system variable
This is illustrated on the slides Objects1 and Objects2. Have a look at the timeline of Objects1 in the Gallery (Objects2 is constructed identically); from bottom to top you'll see those objects:
- Rectangle with a duration, a timeline of 3 seconds; translated in frames: from frame 1 up to 90
- Circle starting at sec. 3 and equally with a duration of 3 seconds: from fram 91 to 180
- Triangle start at sec 6 with a duration of 3 secs as well: from frame 181 to 270
- Polygon start at sec 9 with a duration of 3 secs: from frame 271 to 360
- 3 buttons: Continue, Next and Replay for the duration of the slide, but pausing at sec11 (anywhere after the start of the Polygon was OK)
- a mimicked standard action StartFrame, to store the frame number
- decision Rectangle that sets the playhead to the first frame of the slide, because Continue is lacking here, contrary to the Replay action, the playhead will not move on
- decision Circle uses an Expression to navigate to second 3 (because of the speed I used 89 instead of 90, watch the frame numbers on the slides)
- decision Triangle is similar to Circle, but with replacing 89 by 179
- decision Polygon is similar to Circle, replace 89 by 269
For the next slide Objects2, I used a similar advanced action with one big difference: the system variable rdcmndGotoFrame is replaced by rdcmndGotoFrameAndResume. That is the reason the playhead will continue, contrary to the slide Objects1.
Hope this has explained my view on micro-navigation?