Tips for Advanced Actions

Reader, known or unknown, accept my sincere wishes for an exciting, healthy and peaceful 2011.

And for myself, sorry for the repetition I do hope to have more interaction with you. Please curse me, correct me, tell me blog postings are too long, too short, too many, too few, too serious, too much/bad images, missing audio, missing information about me, ... anything you want. I do welcome any comment, suggestion, question, issue, usecase.

Some people on the Captivate user forum asked how I did learn to use advanced actions and variables? To be honest, my way of learning is mostly by jumping in, bumping my head, making mistakes, restarting, trying to avoid those mistakes, etc. Since I started using Advanced Actions, by that process of trial and error I came to adopt a certain workflow. And in this blog post, I want to offer some tips to let you perhaps avoid some bumps on the head ;-). Here I suppose that the Captivate slides themselves are already created, that you have decided how to put up the project.

1. Prepair
  • Take time to "write" a detailed description (I do use Evernote or Onenote, but a piece of paper is also OK) of what you want to realize, and take into account every possible situation that could occur.
    Examples (situations): multiple attempts, going back, typos by user.

  • Initializing: is often needed for variables, for (in)visibility of objects etc; has this to be executed only once, or several times?
    Movie is linear (going back not allowed): no need for an advanced action to initialize.
    Going back allowed: initialize using an advanced action (on entering slide)

  • Identify system variables you will use

  • Redaction of a list of necessary user variables, choose labels for them

2. Identify triggers/events

Advanced actions have to be triggered, to be attached to events. It is easier to create several advanced actions on different triggers than one complex advanced action on one trigger. But the number of available triggers is limited, and moreover some triggers do not support all possible statements in an advanced action. To see which statements in an Advanced action will be possible, open the drop down list in the Properties panel, region Action for this trigger. Here is the list of possible triggers in your project:
  • On Enter slide: normally any statement can be added to an Advanced action attached to this kind of trigger. Very suitable for initializing, for preparing the objects as you want them to look on this slide. Only limitation: "Show" statement is only possible for objects that do exist on this slide (not for objects on another slide that are timed to display for the project - you can use the "Hide" statement however). On Exit slide:you cannot use the "Show" statement, not even for objects that are on that slide. You cannot use the "Hide" statement either! This trigger is suited for calculating variables that are changed by (user) actions on this slide, to increment/decrement a counter etc.

  • Button/Click Box: can trigger an advanced action on Success and another one on Failure (after last attempt); same kind of statements as for entering a slide, with moreover jump to other slides possible.

  • Text Entry Box: can also trigger both on succes and on failure, if you validate the user entry. If you do not validate the entry only the success action is available as trigger.

  • Question slides: can trigger an advanced action on Success and another one on Failure (after last attempt); this action will be executed, not when the user clicks the Submit button, but when he clicks on the slide or uses the shortcut Y (if you keep the default Success/Failure captions).

3. Choose proper action type

Which advanced action(s) do you need?
  • Standard action: if you need a sequence of actions to be performed, be sure to choose the proper sequence because statements will be executed from top to bottom. If such an action seems not to work well, it can help to add as last statement the action 'Continue'. You can create AND, OR combinations, but also customized conditions (AND + OR, watch the sequence and logic in that case).

  • Conditional action: if the actions to be executed depend on a question (decision), there are at least two sequences of statements needed:
      If you only need two sequences, use a single decision and put one in the THEN, the other in the ELSE part
      If you need more sequences, use multiple decisions, and only the THEN part.

  • Combination Standard+Conditional action: be sure to put the standard action in the first decision. I discussed this situation in this article

4. Label

I blogged already about the importance of good labeling. Some extra tips:
  • Prefer short names, starting with really identifying characters (works better in dropdown lists).

  • Normally you will have similar objects, variables, advanced actions where you will use the Duplicate functionality and do some editing; choosing small, significant differences in the names (1 or 2 characters) makes editing a lot easier.

  • If you have a lot of advanced actions, using characters in the name that indicate the trigger that it has to be attached to, will avoid a lot of searching.
    Examples: EntSlide1, ExtSlide1

  • Do not start user variables with r or c (both are first characters for system variables), but use another first character.

5. Create user variables

You can start creating user variables with Project, Variables. This dialog box has all the functionalities. There are two other possiblities:
  • To create a user variable to be associated with a Text Entry Box, you can use the small X in the Properties accordion, region General. It is a pity that the defautl associated variable (something like Text_Entry_Box_x) is not replaced by this better labeled user variable (see below: cleaning up the list with variables).
  • If you forgot to create one user variable, you can also do it using the button Variables in the Advanced Actions dialog box. But: although the look of the opening Variables dialog box is identical to the one that opens with Project, Variables, you will not be able to remove variables if you choose this workflow.
Please, clean up your list with user variables (use Project, Variables), when you have finished creating your properly labeled variables. It is always easier to manage a shorter list.

6. Create advanced actions

  • Use the Save/Update button as often as possible (pity that there is not a shortcut like CTRL-S)

  • If you have similar actions - where you will use the duplicate action functionality - create one of them, test it thoroughly before duplicating; that will you save a lot of time.

  • If you have a complex conditional action, do not put in all decisions, start with one, test it, add a second, test it etc. Sometimes I even test out first a sequence in a standard action, then copy the statements to the conditional action regions.

7. Test, test, test..

No one likes this, but please do test all situations. It will help for testing to put up on the slides some (temporary) Text Captions showing the user variables you are manipulating. This makes it easier to trace them and to detect bugs.

Did you read everything up till now? Congratulations! Whow, this was the most difficult post I wrote since I started blogging. And I'm very curious how it will be received. I should have added audio, images or a worked out project as an illustration. I have tried to "compilate" what is floating in my head, but am not sure this compilation is OK. Anyone to help with the debugging? Other suggestions? If you want me to apply what I described to one of your projects, add a comment. Please?

Creating a Game Results Board with Captivate 5


This question (from the forum)

"I'm trying to create a board for a game.  In the game there is a red team and a yellow team.  Once a team has control of the "board" the subsequent points earned should go to that team"

sounded like a challenge. And I like challenges, certainly when advanced actions in Captivate have to be used. Until today I had never imagined using Captivate for such a goal. And I had some difficulties to understand the rules of this game. The user gave me his graphics and was very patient explaining those rules. It took less time to create the advanced actions :-) . For those interested in the creation of the actions, I did publish an article explaining in detail those actions, here is the link:

 Creating a Game Results Board

In the article you can download the cptx-file and the cheat sheet for the moderator.

Game rules

The resulting SWF is displayed later on. But let's start explaining the rules (as I understood them):
  • The board is used by the moderator of the game, not by the teams
  • Two teams are playing: the 'yellow' and the 'red' team
  • A toss decides which team is starting: the moderator enters the result by clicking on the red or yellow rectangle
  • Each round corresponds with one slide and has one question
  • There are different correct answers, but not always the same number (first round has 5 correct answers, second 6, last 3); a round is finished when all correct answers have been given; total score for each round is 100 points, but the score for each correct answer is different.One example for first question: since 'dog' is the most popular pet it gets a much higher score than a 'rabbit' that is less popular.
  • The moderator has a cheat sheet, with the place of the correct answers; if the team gives a correct answer he clicks the corresponding rectangle: the answer is displayed with the corresponding score and this score is added to the result of the team.
  • If the answer is incorrect, the moderator clicks the last rectangle (bottom right); a big black cross shows up with the number of attempts left. When the team has given 3 incorrect answers, the other team can continue and gets the score already obtained by the first team.

Cheat sheet

Included a pdf with the cheat sheet for the moderator. There are 3 rounds with these questions:
  1. What are common household pets?
  2. Which day of the week is the most relaxing?
  3. What is a common side dish for lunch?
I got the explanation that the scores for the answers are based on statistics.

Game Results Board - result
Try it out please:

Some ideas

I' m thinking about creating a template for this scoreboard. It would allow customizing, for the backgrounds as well as for the questions, when using placeholders. Important is to have the advanced actions available in the template and an easy way to adapt them. It should be possible too to replace the textual answers by graphics.

What is your idea?

Quiz showing Elapsed Time


Today's posting is about advanced actions but not complicated. This is why this is very well suited for users who want to start with advanced actions and variables. I'm trying to answer a question from the Captivate user forum: "I would want the total time taken for the quiz to be displayed...".


Play with this example to see a possible solution, realized with some advanced actions. After the introduction slide the time spent on each question slide will be stored and displayed on the next slide. The total time spent on the quiz will be visible as well. Both will be showed in seconds. On the score slide the total time of the quiz is displayed, either in seconds or in minutes. If it is a really long quiz, it would also be possible to display in hours of course  :-). I will explain briefly the variables and advanced actions used. In the Gallery you'll find a screenshot of each advanced action.


I used the system variable cpInfoElapsedTimeMS and created some user variables:
  • v_start will store the start time for a question (in milliseconds), reused on each question slide
  • v_end  will store the end time for a question  (in milliseconds), reused on each question slide
  • v_duration will store the time spent on a question (in seconds), reused on each question slide
  • v_total will store the time spent on the quiz so far (in seconds)
  • v_help is a variable used to transform the total time to minutes 
  • v_minutes will store the total time spent on the quiz in minutes
On the second question slide, a text caption, labeled InfoTime shows the value of the variables v_duration and v_total. This Text Caption is set to display for the rest of the project and will be hidden by an advanced action on entering the Score slide. For the moment there is no possibility to have a 'mask' to display the time, sometimes you'll see a lot of decimals.

Advanced actions

I have included all the advanced actions as screenshots. Have a look at the image gallery. There are 3 advanced actions:

1. SetStart

This standard action is executed on entering the first Question slide. It populates the variable v_start with the value of the system variable cpInfoElapsedTimeMS at that moment. 

2. StartNext

This standard action is executed on entering all Question slides with the exception of the first one. There are more activities here:
  1. the user variable v_end gets the value of  the system variable cpInfoElapsedTimeMS at that moment;
  2. the variable v_duration is calculated from  v_end and v_start; it is in milliseconds after this statement
  3. the variable v_duration is translated to seconds
  4. the variable v_total is recalculated (in seconds)
  5. the variable v_start is reset to the  value of  the system variable cpInfoElapsedTimeMS at that moment to start the chrono for this question

3. EnterScore 

This conditional action is triggered on entering the score slide. It has 2 decisions, the first Standard is really a standard action, the second Minutes is a conditional action. If you are puzzled about this combination of standard and conditional action, please check this article Combining Standard and Conditional in one Advanced Action.

3.1 Standard decision
  • hides the Text Caption TimeInfo (that was displayed for rest of project)
  • repeats the statements 1-4 of the action StartNext; we do not need 5, because there is no question slide anymore
3.2 Minutes decision
On the score slide you have 2 Text Captions to show the total time spent on the Quiz; initially both are invisible: 
  • YesMinutes shows the total time in minutes and will be set to visible if the total time is greater than 60 sec; you'll find this in the Then part of this decision
  • NoMinutes to show the total time in seconds, will be set to visible if total time is smaller than 60 sec;  you will find this in the Else part of this decision
Let me know if you disliked or liked this explanation. And if you have more questions, do not hesitate...

Strings, Text Entry Boxes and Associated Variables

On the Captivate blog recently two tips for using advanced actions were published: Few tips on Advanced actions. If you have been watching my blog, you'll know that advanced actions is my favourite subject. And after reading the Captivate blog posting, I felt some more details about the first tip would be welcome. If that tip was perfectly clear to you, please do not continue reading this post.

The forementioned tip is about checking the possible emptiness of a variable by comparing it with an empty user variable, which is indeed the proper, even the only way. The basic reason is that in the simple Captivate scripting language a string shouldn't be included in double quotes as is the case in other scripting languages, at least not when the string is only one word. If it contains more than one word, double quotes will be automatically added by Captivate, no need to type them. Here are some examples of conditions (words starting with v_ are always user variables in my self-imposed scripting grammar):
  • v_counter is equal to 12
  • v_name is equal to Lieve
  • v_score is greater or equal to 20
  • v_name contains Lieve
  • 1 is equal to 1
  • Lieve is equal to Lieve
Those examples work perfect and here quotes are totally missing, there is no visible difference bewteen a string and a number. The two last (absurd) examples can be used to create a decision to simulate a standard action that has to be combined with conditional action(s) as explained in the second tip of the Captivate blog. A couple of weeks ago I published an article about this workflow:
The tip about the empty variable is illustrated by a user variable associated with a Text Entry box. For those users who did try out advanced actions in the previous version (Captivate 4) I thought it appropriate to explain the changes concerning Text Entry Boxes and associated variables. This change has been puzzling me when I started with advanced actions in Captivate 5, and maybe I'm not the only one ;)

In Captivate 4, when you create a Text Entry Box, it will be labeled by Captivate like any other object. The default label for the first created Text Entry Box is TTextEntryItem1.  Immediately an associated variable is provided too, and it gets the default label TTextEntryItem1Var. That is great, because you can insert the variable later on in a Text Caption. I include a screenshot to show those default labels. Personally I will always attach a more significant label, you know me already as a labeling freak. 

In Captivate 5 however, both the Text Entry Box and the associated variable will get the same label. Have a look at the second screenshot with a partial view of the Properties panel. I highllighted (in yellow) both the TEB-label and the label of its associated variable. If it is the first Text Entry Box, both object and variable will get the default label Text_Entry_Box_1. Although I'm always complaining about the fact that so many different ID's are needed in a CP-movie,  I do not really like this situation where one label covers two different 'objects. When both are used in advanced actions it can be confusing. Perhaps an example can better explain my "dislike":
Three statements of an advanced action:
    1.  Assign Text_Entry_Box_1 with Lieve  
    2.  Apply Effect Text_Entry_Box_1 Fly In From Bottom Left
    3.  Assign Text_Entry_Box_1 with "Lieve Weymeis"

In this action the first statement will give a value to the user variable Text_Entry_Box_1. If you have a Text Caption visible with this user variable inserted, you will see the content (Lieve). The second statement has the Text Entry Box flying in. Later the user will type an entry for the TEB and the variable Text_Entry_Box_1 will change to this new value. In the last statement the content is changed again, and double quotes will be inserted by Captivate because there are two words.  Perhaps you'll understand now why I was confused. But luckily, in the Properties panel of the Text Entry Box you can immediately create another user variable: in the second screenshot watch the green highlighted X which will open a small dialog box where you can enter a new variable name. This workflow however is not possible in Captivate 4, where you have  to create the user variable first (in the Project, Actions dialog box) before being able to associate it to a TEB.
BTW will publish shortly another article about Advanced actions, to create a game control panel. And it has some examples of standard actions combined with conditional actions. Watch this blog, I'l post the movie to play with and a link to the article.

Stack Order and Master Slides


When preparing the usecase for a previous blog post about creating cleaner Captivate-files (Playing Hide-and-Seek with Captivate objects), by using the possibility to show non-interactive objects for the rest of the project, and hiding them with advanced actions, I bumped into an issue that puzzled me. So I turned to the proper place, the Captivate user forum and opened a thread. I did not have to wait long, Ashwin Bharghav (from Adobe) answered and offered a workaround.  And I want to explain the issue and its solution. 


For the pretest, one of the usecases in this previous posting I wanted to streamline the workflow in a template because its re-usability.  It meant not having to recreate the advanced actions all the time. To make the template as versatile as possible I decided:
  • not to use one simple image for the Yes and No buttons, but to split them up in a Shape + Text. Both for localizing, and adapting the formatting this is an advantage. I appreciate a lot the roundtripping feature with Photoshop in the - eLearning Suite 2 (such as being able to import layer comps) :-)

  • not to choose a background image for the master slide, but inserting an image on top of the background to enable swapping and editing the image in Captivate. In the example I used an image with both saturation and alpha adapted (alpha to about 40%).

In this usecase, a lot of non-interactive objects were timed to 'Display for the rest of the Project': the images of the buttons (both shapes and Text) and the questions. And when previewing or after publishing I did see this phenomenon: on slides where the objects were not really inserted but showed up because of their timing, they took over the alpha of the Image on the master slide. Have a look at the first picture included: watch the questions and buttons;  the last question and buttons are on the slide itself, the previous ones are on previous slide but display on this slide, and they are partially transparent!


I quote the answer of Ashwin
 "By default when the objects are timed to display for rest of the project, they will have the lowest order on other slides in the project. So as per this logic the objects are shown under the master slide image on other slides". 

This explained the phenomenon: the objects took over the transparency of the image on the master slide. But it was not what I expected from a master slide :( 

Workaround (s)

Proposition of Ashwin: when setting the timing to Display for rest of project, there is an extra option: "Place object on top" (see second image). This will put the object always on top of the stacking order on slides where the object is no really inserted but displayed because of this timing. This may not be really what you want, because the object will also stay on top of the real objects on that slide. In this usecase I could live with that solution, but will not always be happy with it.
Another workaround is merging the image in the background of the master slide, that was my approach when publishing the pretest on the blog.

Article with details about 'Hide-and-Seek'

If you are curious about the advanced actions I have been using in this pretest-project and in the keypad-simulation to realize the Show/Hide objects, I have published a detailed explanation of the workflow in this article: Using Display for Rest of Project to create a cleaner Captivate file

Playing "Hide-and-seek" with Captivate objects

This article was written for version 5. At that moment it was not possible to show an object, timed for the rest of the project, from another slide than the original slide where it was inserted. However this has changed for later versions: in 7, 8, 9 and later you can show an object timed for the rest of the project from any slide.

Hide/Show actions, attached to events like entering slides or clicking a button/click box are popular. They can also be used in Advanced actions. But from several questions on the user forums I concluded that there is some confusion about what is really possible and impossible with those 'simple' actions. So, thanks folks for giving me the inspiration for this blog posting! If combined with the timing option 'Display for rest of project' you can end up with a Captivate-file that looks a lot 'cleaner' (perhaps I'd better try to keep my real desktop as clean as those files).  The examples were created with Captivate 5, but they can be realized in Captivate 4 as well.

Please, play with this SWF a little bit. I extracted this file from a larger project where I try to motivate students and colleagues to use Twitter on the college campus. This example is like a pretest, and the result will be used to offer a customized menu of chapters to be viewed by the user (this part is not in the example). And while playing, try to figure out how you would realize this in a Captivate file.
Did you know this?
4 important tips you have to be aware of when showing/hiding and using 'Display for rest of project'
  1. You can apply the action Show only to objects that are really on the slide
    p.e. you put a rectangle on slide 1, set to 'Display for rest of project'; if it is initially hidden, you can only show it on slide 1, not on slides 2, 3 etc
  2. You can apply the action Hide to objects wherever this object will be visible on runtime
    p.e. for same rectangle, if it is visible, can be set to be hidden on slide 2, slide 3 etc
  3. You can choose the timing 'Display for rest of project' only for non-interactive objects, not for buttons, click boxes, Text Entry boxes
    some interactive widgets (p.e. Perpetual button) can be displayed for rest of project
  4. When 'Display for rest of project' is applied to an object, it keeps its unique ID for the rest of the project
    if you copy an object to another slide, it gets a new ID; this leads to a lot of repetitive work when creating advanced actions
In the example of the previous blog posting (Creating a keypad-simulation) I did use those tips to have a 'clean' Captivate file. What do I mean by 'clean'? Have a look at the first image in the attached image gallery: it shows the filmstrip of this Keypad-file. Watch slides 2-8: on every slide only objects added on that particular slide are visible in the Filmstrip. On the stage you'll see everything: not only the objects on that slide but also those set to 'Display for rest of project'. In the second image you see the stage focused on slide 6 'In'. Whereas the Timeline of this slide only has the objects Highlight (red), a Text Caption and a click box (third image), on the stage you also see the images 'Keypad' and 'EnterPin' (green display) which are really on slide 2 and displayed for rest of project.
Overview visibility objects Keypad-simulation
I really want to recommend, creating an overview before starting to configure Show/Hide actions. Here is a rather simple overview of the 4 image-objects (keypad and 3 displays) of my keypad-file. For more complex projects I would use a table:
Keypad-image         Visible on all slides from slide '2. Digit1' until slide '8. OK'
                                Not visible on slides '1. Intro' and '9. End'
EnterPin-image       Visible on all slides from slide '2. Digit1' until slide '6. In'
                                Not visible on slides '1. Intro', '7. Not-OK', '8. OK' and '9. End'
Pin_NOK-image       Visible on slide '7. Not-OK' only
Pin_OK-image         Visible on slide '8. OK' only
Could you figure out how to realize this Captivate file with Hide and Show? If you do not allow the user to repeat the entry of the pincode after the slide Not-OK it is not that difficult. I offer you some tips:
  • set objects to 'Display for rest of Project' only when they have to be visible on more than 1 slide
  • concerning the advanced actions for the click boxes: Article: create keypad-sim
  • use simple standard actions (very few statements) on entering the slides
Example pretest
The example you have been playing with at the start (pretest) is more complicated. Have a look at the 4th image in the Gallery which shows the filmstrip of this project: isn't that clean? And the last image shows the Timeline of one of the slides, slide Question4. On this slide you see:
  • a Text Caption Quest4 with the 4th question, displayed for the rest of the project
  • image SJa4: image of a button, displayed for the rest of the project; a real button is interactive, cannot be displayed for the rest of the project, and moreover it only needs button functionality on this slide, so I preferred an image that is covered up with a click box (CB only on this slide)
  • Text Caption Ja4, displayed for the rest of the project:  have to localize a lot, that is why I imported 4 layers from a Photoshop-file (two button-images and two text layers); if you do not need to change the text that often you can of course merge image and text
  • image sNee4: similar to SJa4
  • Text Caption Nee4: similar to Ja4
  • Click Box CB_Yes4: only on this slide
  • Click Box CB_No4: only on this slide
Imagine what the timeline would have been if all objects from previous slides were copied to this slide (and even worse for next slides)!

This is a typical project for which I do create a template, because it can be used over and over again. The advantage is that the advanced actions will be stored in the project, and since a lot of objects have a unique ID, due to their timing (for the rest of the project), adapting those actions to similar projects will be a lot less cumbersome.

Would you like me to explain the advanced actions used in this project or for the keypad-simulation in an article? Please, post a comment!

Create a Keypad-Simulation using Advanced Actions


It has been a while since I last posted an example created with advanced actions. This posting treats the answer I tried to give to someone on the user forum who asked if it is possible to simulate the entry of a 4-digit code on a keypad and show the appropriate screens when the code is entered correctly or incorrectly. This sounded like a fine example for advanced actions, so I tried to work it out. This could certainly be done in a cooler way by creating/using widgets scripted with ActionScript, but am not sure it would have taken less time. For your information: I timed working and it took me exactly 45 minutes. But I did not create the graphics :-)


Play with the result, please. I explained the workflow in an article: 

Work flow

The file has 7 slides between the introduction and end slides: 
  • 4 slides to enter the 4 digits, they are labeled Digit1, Digit2, Digit3, Digit4
  • 1 slide for confirmation where the user presses the IN button, labeled IN-slide
  • 1 slide that shows the image for a correct PINcode, labeled OK
  • 1 slide that shows the image for an incorrect code, labeled NotOK

 The tedious part of this SWF was 

  1. the creation/labeling of all the click boxes. Slides Digit1 - 4 have each 10 click boxes over the 10 possible digits.
  2. the creation of the simple advanced actions for each click box (40 actions)

Some timesaver tips for this monotonous work: 

  • choose a short but meaningful label for click boxes & advanced actions:
    • examples click boxes: label CB_0_1 for the click box over the number "0" on the first slide, CB_1_4 is the CB over the number "1" on the fourth slide...
    • examples advanced actions: CB1_0 is to be attached to CB_0_1, CB4_1 is to be attached to CB_1_4

  • create first slide with its click boxes and attached advanced actions, duplicate then to create the three other slides:
    • you will have to label all new click boxes on the duplicate slides (too bad, but they get their individual default ID)
    • to change the attached advanced action is easier with the chosen labels, on second slide CB1_0 has to be replaced by CB2_0, CB1_2 by CB2_2 etc
The advanced actions to be constructed for this project are pretty simple, you can find more explanations in the article mentioned before.

Unknown is Unloved (Flemish Proverb): Branching View

If you are a long-time user of Captivate you certainly know the Branching view as one of the "big three" (with Storyboard and Edit view). But I want to ask you just one question: if you upgraded to version 5: 
 "Did you explore the revamped Branching view - sorry, the Branching panel as it is officially called in the Help?"
 It is part of the Navigation workspace (see blog post about workspaces). Of course you can show this view using the Window menu or the shortcut key SHIFT-CTRL-ALT-B.

Similar to the global user interface, this new panel is quite different from the "old" version. It is up to you to discover its small but useful gems. I would like to help somehow in this exploration. Personally I do use this Branching view more specifically for more complex projects:
  • to look for orphaned slides (unlinked to other slides)
  • to check all links, including success and failure links
  • to label slides (undocumented feature)
  • to control logic of slide groups
  • to export to an image (documenting the project)

When opening Branching view, it will have the activate slide in focus. You will see only two panes: above the Main pane, where you will be able to do some editing, and beneath the 'Preview' pane which I would rather call the Navigation pane where you see which part is visible in the Main pane. You can easily move the orange rectangle in this small Navigation pane to go to another part of the project. In the top right corner you'll find a dropdown list and a slider to change the zoom percentage on the Main pane.

Please, open the hidden pane 'Unlinked slides' by using the arrow button left. This will also show the Legend pane, explaining the color code for the link arrows. A pure black arrow link means that the playhead is just moving on, there is no interactive object in the predecessor slide. Green and Red arrow links to sort from slides with interactive objects, could be linked with Success and Failure paths. Beware: if your are using a high resolution screen you will need to zoom in to see the difference between the colors of the arrows. However when a slide is selected, in focus, the sorting arrow will be enhanced (width increases). I add a screenshot of the Branching view with all panes expanded.

Discovering unlinked slides is very easy with the left most pane, a new and useful feature in CP5. In the screenshot you see that one slide is orphaned, has no links with any other slide.

The Branching view (panel) is dynamically linked with the Filmstrip and with the Slide Properties panel. Any editing in the Branching panel will be immediately reflected in Filmstrip/Properties and vice versa. I created a customized workspace 'MyNavigation workspace' in order to make the three of them visible. You will see this workspace in the added Captivate movie. You can dock the Branching view, and it will take then its minimum width or minimum height. When docked with the Filmstrip in the left station it will have its minimum width. When docked with the timeline in the bottom station it gets its minimum height. I just docked it in the middle, and it shrunk the stage to a tiny small vertical panel (width of my screen = 1600 pixels).  You do not really need the stage for the goals I described, since you can increase the size of the slide in focus by double-clicking it (in CP4 double-clicking a slide in Branching view did get you back to Edit view with that slide on the stage). To maximize the size of the Main Pane you can collapse both the Preview pane and the Unlinked slides pane.

Try double clicking the navigation arrows: you'll see which action is responsible for the navigation from or to that slide. 

I find it rather difficult to show the possibilities of the Branching view only with a blog text. That is why I have tried to create a Captivate movie (partially interactive). In this movie I tried to show
  • the navigation with the preview pane
  • the HUD (Heads Up Display) you will get when selecting a slide or double-clicking a navigation arrow
  • collapsing and expanding slide groups
  • detection of orphaned slides
  • labeling slides
  • changing navigation
  • exporting to an image
If you are creating complex projects, hope you will explore this Branching view. Feel free to let me know if you can appreciate its secrets?

Watch this movie:

Create and Use a "Knockout" Master Slide


This question appears regularly on the Captivate forum: how can I insert captured slides in a master slide that has a logo and other information on board. Perhaps this small tip with a step-by-step planning can help you achieve your goal. Some images are attached to explain the workflow. And you will need some maths (you know probably already that I'm a maths-lover) but I'll provide you with a simple rule.

Work Flow

For this example I wanted to create a master slide to have a final SWF with a resolution of 920x600 pixels. The captured slides were created with a resolution of 640x480pixels, which left enough space to be filled with logo, text, etc.

Step 1 (in Photoshop or other app) - create the Knockout 

I created an image to be used as master slide. I created such an image in Photoshop but any program that allows you to have transparent pixels will do. This is the first image in the attached gallery. It is exactly 920x600pixels, has left a bar with a width of 200pixels, at the top another with a height of 70 pixels, to the right a bar with a width of 80 pixels and a the bottom a bar with a height of 50 pixels. The transparent region is exactly 640x480 pixels. In the image this transparant region is white.

Step 2 (in Captivate) - first rescale

Some maths to start with:
  1. calculate the difference between the widths of the vertical bars:     200 - 80 = 120 pixels
  2. new width project will be 640 + 120 = 740 pixels
  3. calculate the difference between the heights of the horizontal bars:   70 - 50 = 20 pixels
  4. new height project will be 480 + 20 = 500 pixels
Rescale the project using these settings:
  • deselect 'Maintain aspect ratio' and introduce the new dimensions
  • under 'New Size is Larger', select 'Keep project the same size and position project Bottom Right; I choose this because the bottom bar and the right bar have the smallest dimension;
The original captured size and the size after this first rescale are visible in the second and third image of the Gallery.

Step 3 (in Captivate): second rescale

 Rescale now to the final size, for this example to 920x600 pixels, with those settings:
  •  deselect 'Maintain aspect ratio' and introduce the final dimensions
  • under 'New Size is Larger', select 'Keep project the same size and position project Center
The fourth image in the Gallery shows the situation after the second rescale of the project.

Step 4 (in Captivate): apply master slide

Go into the Master slide panel and import the Knockout image either to the Library or immediately to the slide. Be sure it is positioned at X=Y=0 (Properties panel). Apply the Master slide to the captured and rescaled slides. The last image in the Gallery shows the result.

The Gallery is not really showing the image as I posted them. The white space that is added after the rescaling has partially be trimmed, and the difference in total size is not visible because all images are rescaled automatically. I'm very sorry about that, should move over to a better blog hosting.

Please let me know if this kind of small tip is useful, and do not hesitate to give me suggestions.

Shortcut Keys: Moving and Resizing Objects


In a previous posting I promised to write something about my favourite shortcut keys.  And since editing is something that takes up quite a lot of time, I want to share some tips about that part of the workflow. How can you move, resize and align objects in an efficient way using shortcut keys? And there are quite a lot of (hidden) shortcuts. In the Captivate blog

Do you know the Registration point?

For Captivate users that are not familiar with Flash, I first want to explain the importance of the registration point for Captivate objects. If you are a Flash user just skip this, but you will have to know that in Captivate it is not possible to move this registration point.
The registration point is always the upper left corner of the bounding box of an object: you see some examples in the first image. The coordinates you are seeing in the Properties panel, region Size and Position are the coordinates of this point. For the math lovers (also for non-math-lovers): do know that the zero point of the coordinates is situated in the upper left corner of the stage. This means that the X-coordinate of the registration point is the horizontal  distance (in pixels) from the left side of the stage and the Y-coordinate is the vertical distance from the upper side of the stage. In the image gallery included in this posting I show the registration points for some objects.

Why is this point so important?

  • If you use the snap to grid feature, it is the registration point that will snap to the grid.
  • If you use a shortcut key to increase the size of an object, the registration point will not move, it is the opposite corner (down right) that will move.
  • If you align objects their registration points will be aligned. I added some alignment examples in the image gallery

Grid and Snap

Did you ever use the grid? There is a button to show/hide that grid (or you can use the View menu). The default size of the grid mesh width is 16 pixels, but you can change this in the Preferences, Global, General Settings. If you activate the "Snap to Grid" (with button or View menu), moving an object with the mouse or with an arrow key will cause the registration point of that object to snap to one of the grid points.  But did you know that the mesh width is also important when moving and resizing objects with shortcut keys?

Moving objects using shortcut keys 

How can you move an object with shortcut keys?  Be sure to have the Selector tool activated and select the object.  If the Snap to Grid is activated, an arrow key will always move the registration point to the next grid point. But if this snap is deactivated:
  • Using an arrow will move the object (by its registration point) by one pixel in that direction.
  • Using an arrow in combination with SHIFT will move the object 10 pixels in that direction.
  • Using an arrow in combination with CTRL will move the object by the mesh width of the grid, thus 16pixels if you did not change the default valuedirection.
This works also fine with multiple selections


Resizing objects using shortcut keys

For resizing activate/deactivate the snap is not important. Here are the possible shortcuts:
  • Using ALT+RIGHT will increase the width of the bounding box with one pixel (registration point will not move).
  • Using ALT+LEFT will decrease the width of the bounding box with one pixel (registration point will not move).
  • Using ALT+DOWN will increase the height of the bounding box with one pixel (registration point will not move).
  • Using ALT+UP will decrease the height of the bounding box with one pixel (registration point will not move).
If you combine SHIFT+ALT+Arrow: instead of 1 pixel the size change will be in steps of 10 pixels.
If you combine CTRL+ALT+Arrow: instead of 1 pixel the size change will be the mesh width (16 pixels if you did not change the default value).
As with moving those shortcut keys also work with a multiple selection.

My favourite sequence

  • Duplicate an object with CTRL-D; the duplicate will be placed 10 pixels to the right and 10 pixels down the original
  • Use SHIFT+UP to align the tops of the duplicate and the original; then you can use one of the other shortcuts to move the duplicate to the right  OR
  • Use SHIFT+LEFT to align duplicate's left side with the original; then you can use one of the other shortcuts to move the duplicate down.
Here is a captivate training to practice this workflow.