Discover/Use Captivate's System variables - Part 1

Intro

Many years ago I did write out some tutorials explaining how to use variables. They are still available in Adobe's Knowledge base, but of course the screenshots are outdated since they were created in Captivate 4 and 5. Inspired by a recent thread in the forums, where it took a while to explain the use of variables, I want to write out some posts about Variables. This first article will focus on System variables and include a downloadable table which you can use as reference for them.

What is a Variable?

If you 'google' to find a definition of a variable you will get thousands of results. I would say that it is a container identified by a name and the content can change or be changed (is variable). It is a term used in programming languages and applications. It makes them more flexible, powerful. If you are a maths lover, compare this equation: 5 + 6 = 11 with  a + b = c. The a, b, c are variables, and the second equation allows you to create tons of small sums. The first equation uses 'literals', and you have only one sum.

Captivate has by default 6 categories of System variables and 2 automatically defined user variables. This article is only about system variables, they are available for your use in any project. All the system variables start with the characters 'cp'. Lables are, as usual in Captivate, unique for each variable and they are case sensitive. It may be confusing that the two  user variables,  created for each new project (cpQuizInfoStudentName and cpQuizInfoStudentID) also start with the same characters..  When you open the dialog box  Project, Variables the type 'user' is automatically selected, and you see only those 2 variables. Be sure: those are NO system variables, they are necessary for the workflow of Internal Server reporting, but can also be used with many LMS's. The certificate interaction uses  cpQuizInfoStudentName as well.

 

Categories of System Variables - table

You can download the table from this link.

Captivate has 6 categories of system variables. To see them switch to System type in the dialog box:

  1. Movie control: is a very special category, which I will explain in a second post.  They offer a way to control your course by changing a system variable. This is not a normal behavior of variables, and can be considered as a, add-on to more complicated advanced/shared actions. These system variables are also different from those of category 2-5 because their value cannot be displayed in Captivate output.

  2. Movie Information: typical for this movie are the number of slides/frames, the speed (FPS), which frame/slide you are at this moment, etc… All variables of this category are read only. Their value can be used by the developer, they can be displayed in a Captivate file, during Preview and after publishing. I will point out some examples later on that could save you time while developing. In the table you’ll find some references as well.

  3. Movie Metadata: you can add metadata to a course, lot of it can be done using File, Project Info.  The behavior and usefulness are similar to the previous category. More tips below the examples below.

  4. System Information: data about present Date, Time, or which OS you are using if watching on a mobile device are in this category. Like 2-3 these variables are read only but can be used in the same way as those from Movie Information and Movie MetaData. Look in the table for examples.

  5. Quizzing: will not expand on this category because I already posted a blog about using Quizzing System variables

  6. Mobile: has only one system variable which is exceptional because it stores 3 numbers. It cannot be displayed in a course, only be used in actions.

This blog has focus on categories 2-3: they are very useful when you insert them in a course, either during debugging or to be able to show their value in output.  The workflow is the same for all variables that can be displayed (not category 1n nor 6).

Display a Variable

The best way to insert a variable to be displayed is this workflow:

  • Create a text container: either a caption or a shape on the slide
  • Go into edit mode, by double clicking or using the function key F2.
  • You’ll get the Character part in the Properties panel. Find tesee three buttons

    First button inserts a symbol, last button a hyperlink, but you need to click the second button to insert a Variable
  • Switch from the default User type, to System.
  • Choose a category under the dropdown list which has by default ‘All’ as choice
  • Select the wanted variable.
  • The ‘length’ is set by default to 50 characters, but you can edit this number. It is essential to do so if you expect the value to be greater than 50 characters (spaces included).
  • Confirm the insertion with the OK button.
  • While editing the variable will appear as in this first screenshot, between double $$. When previewing or after publishing that placeholder is replaced by the value (second screenshot)

Edit and Runtime view 

Some Examples

1. Slide counter: Slide X/Y

You use two system variables from the category Movie Information: cpInfoCurrentSlide and cpInfoSlideCount. Insert this text on the first slide of your course, and display it for the rest of the project.  Do not forget to check off ‘Always on top’ for the text container.

2. Author name in Theme

You will use the variable cpInfoAuthor from the category Movie Metadata. While creating a custom theme to be used in multiple courses, insert this variable in a text container on the main master slide. Master slides are part of the theme. Do not forget to warn your colleagues to fill in the fields under File, Project Info.

3. Course name in Theme

If you use a Title master slides, you can insert the variable cpInfoCourseName on that master slide as title. That variable also blelongs to the category Movie Metadata. Same comment: Project Info has to be defined by the developer. You can also use this variable in a footer of course.

4. Debugging Timeline

As I mentioned many times, understanding how to pause the timeline, and its consequences on objects is very important. I always recommend to insert a text container with the variable cpInfoCurrentFrame to watch pauses while Previewing the project. It is a variable from the category Movie information. You can see that I apply this recommendation myself in this movie:
Captivate’s Timeline

You’ll certainly find more examples. When used in combination with advanced or shared actions, lot more is possible but that is beyond the scope of this introduction.  One example: to show the elapsed time on the course (the real time spent, not the developer’s time based on slide durations), you cannot just insert the variable cpInfoElapsedTimeMS (from Movie Information) because it is defined in milliseconds. You need to do some simple maths to make it readable to the learner, and that means …. advanced action.

What Now?

Have a look at my next blog post, where you'll start to take control of your courses with the system variables of the Movie Control category. It is a good 'step up' to challenge your next goal: using advanced/shared actions.