Adobe Captivate 4 allows designers to access and modify a variety of System Variables to add extra functionality to their projects.
I haven’t seen a full list of all the Adobe Captivate 4 variables anywhere so I decided to post one here.
The System Variables are divided into different groups:
MovieControl lists variables for events that control the movie like pause, resume, previous, next slide, and so on.
MovieInformation lists variables related to the movie such as variables for the current slide, current frame, and so on.
MovieMetaData lists variables that provide information about the project such as project name, author, and company.
SystemInformation lists variables that can be picked up from your computer such as current date and current time.
Quizzing lists variables related to quizzing, such as the variables that capture the number of attempts and the percentage of questions answered correctly.
I tried to put the variables into their respective categories below, but there are some of them, which seem out of place. For example – all quizzing variables start with cpQuizInfo… but there is also a variable called cpInfoPercentage, which shows the scoring in percent. Why this variable isn’t named cpQuizInfoPercentage is beyond me.
MovieControl Variables:
Variable name | Default value | Description |
cpCmndCC | 0 | Enable/disable closed captioning (CC). Set value to 1 to display closed captions. |
cpCmndGotoSlide | -1 | Assign the slide number that the movie should move to before pausing. Index begins with zero |
cpCmndMute | 0 | Mute the audio. set 1 to mute and 0 to unmute |
cpCmndPlaybarMoved | 0 | Set to 1 if the playbar has moved |
cpCmndShowPlaybar | 1 | Provides info about the visibility of the playbar. Returns 1 if the playbar is visible, and O if not visible |
cpCmndVolume | 50 | Control the movie’s volume. Value can range from 0 to 100 |
rdcmndExit | 0 | Exit the movie. set 1 to exit |
rdcmndGotoFrame | Assign the frame number the frame should jump to before pausing. Index begins with zero. | |
rdcmndGotoFrameAndResume | Assign to this variable the frame number to jump to and play. Index begins with zero | |
rdcmndInfo | 0 | Display information about Adobe Captivate |
rdcmndNextSlide | 0 | Go to the next slide. Set 1 to jump to next slide |
rdcmndPause | 0 | Pause the movie. Set 1 to pause |
rdcmndPrevious | 0 | Go to the previous slide. Set 1 to jump to previous slide |
rdcmndResume | 0 | Resume playing the movie. Set 1 to resume. |
cpLockTOC | 0 | Enables/disables user interaction on TOC |
MovieInformation variables:
Variable name | Default value | Description |
cpInfoCurrentSlide | Current slide number. Index begins with 1 | |
cpInfoCurrentSlideLabel | Name of the Current Slide | |
cpInfoCurrentSlideType | Type of slide playing currently. (Slide type can be Normal Slide, Question Slide, or Random Question Slide) | |
cpInfoHasPlaybar | Information about presence of playbar. Returns 1 if visible and 0 if not | |
cpInfoIsStandalone | ? No idea what this is. | |
cpInfoLastVisitedSlide | 0 | Last visited slide. Index begins with zero |
RdinfoCurrentFrame | Current frame number. Index begins with zero | |
rdinfoCurrentSlide | Current slide number. Index begins with zero | |
RdinfoFPS | 30 | Frame rate of the movie in fps |
rdinfoFrameCount | Total number of frames in the project | |
rdinfoSlideCount | Total number of slides in the project | |
cpInfoElapsedTimeMS | 0 | Time elapsed, in milliseconds, since the movie started playing |
cpInfoEpochMS | Time elapsed, in milliseconds, since Januar 01, 1970 | |
cpInfoPrevSlide | Slide Previously playing before current slide | |
CaptivateVersion | v4.0.0 | Shows the Captivate version |
MovieMetaData variables:
Variable name | Default value | Description |
cpInfoAuthor | Name of the author | |
cpInfoCompany | company | Name of the company |
cpInfoCopyright | copyright | Copyright Info |
cpInfoDescription | project description | Description of the project |
cpInfoEmail | author@company.com | e-mail address |
cpInfoProjectName | Name of the Adobe Captivate project | |
cpInfoWebsite | www.company.com | URL of the company website in the format www.companyaddress.com |
SystemInformation variables:
Variable name | Default value | Description |
cpInfoCurrentDate | dd | Current Date: The date as set on the user’s computer |
cpInfoCurrentDateString | mm/dd/yyyy | Current Date as set on the user’s computer in the mm/dd/yyyy format |
cpInfoCurrentDay | Day of the week as set on the user’s computer. Values range from 1-7 starting with Sunday. Sunday=1, Monday=2, and so on) | |
cpInfoCurrentHour | hh | Current hour: The hour set as on the user’s computer |
cpInfoCurrentMinutes | mm | Current minutes: The hour set as on the user’s computer |
cpInfoCurrentMonth | mm | Current month: The month as set on the user’s computer |
cpInfoCurrentTime | hh:mm:ss | Current time as set on the user’s computer in the hh:mm:ss format |
cpInfoCurrentYear | yyyy | Current year as set on the user’s computer |
Quizzing variables:
Variable name | Default value | Description |
cpQuizInfoAnswerChoice | Chosen Answer | |
cpQuizInfoAttempts | Number of times the quiz has been attempted | |
cpQuizInfoLastSlidePointScored | Score for last quiz slide | |
CpQuizInfoMaxAttemptsOnCurrentQuestion | Maximum attempts on the current question | |
cpQuizInfoNoQuestionsPerQuiz | Number of questions in quiz | |
cpQuizInfoPointsPerQuestionSlide | Points for the question slide | |
cpQuizInfoPointsscored | Points scored in the project | |
cpQuizInfoQuestionSlideTiming | Time limit in seconds for current question | |
cpQuizInfoQuestionSlideType | Question slide type(Multiple-Choice/True-False/..etc) | |
cpQuizInfoQuizPassPercent | Passing percentage for the quiz | |
cpQuizInfoQuizPassPoints | Passing points for the quiz | |
cpQuizInfoTotalCorrectAnswers | Number of correct answers | |
cpQuizInfoTotalProjectPoints | Total project points | |
cpQuizInfoTotalQuestionsPerProject | Number of questions per project | |
cpQuizInfoTotalQuizPoints | Final quiz score | |
cpQuizInfoTotalUnansweredQuestions | Total number of unanswered questions | |
cpInfoPercentage | scoring in percentage |
26 Comments
This is great! I’ve been looking for an update to the rdcmnd controls from previous versions. The problem is, I’m not able to get these to work. I’m using a MovieClipLoader and a listener to wait for the movie to initialize, then I’m trying to jump to slide 2 (the third slide, counting slide 0. Any idea what I’m doing wrong?
var oClipLoader:MovieClipLoader = new MovieClipLoader();
oClipLoader.loadClip(oMovie, oContainer);
var mcListener:Object = new Object();
oClipLoader.addListener(mcListener);
mcListener.onLoadInit = function(mc:MovieClip) {
trace(mc);
mc.cpCmndGotoSlide=2;
};
Thank you for the useful information.
Do you know of a way to find the variables that can be changed in the Captivate standard.htm file (e.g. “@MOVIETITLE”). Someone referred me to your info here, but these system variables don’t match the variables I see in the Captivate 3 or Captivate 4 standard.htm files.
Thanks!
Hi David,
I’m pretty sure that the @MOVIETITLE variable is equal to the ‘cpInfoProjectName’ variable. At least it is the same information.
There is some weird issue with that @MOVIETITLE variable though – if you make a project – save it – publish it – and then rename it that variable will always be the original name that you first saved it with. Not really sure why this is happening, but perhaps these special @ variables in the standard.htm file is something that is filled once the project is saved/published for the first time.
/Michael
Thanks, Michael. I’ve heard about the issues with the @MOVIETITLE in Captivate 4 – I’ve not had problems with it in Captivate 3 (I think it is a new defect for 4).
What I’m hoping to find somewhere is the complete list of “@variablename” options available for use in the standard.htm file – as you see, even if the info from @MOVIETITLE equals the information from cpInfoProjectName, you’d have to find out different names for the variables in the HTM file…
Here are the variables I’ve seen (pulled from the standard.htm file from Captivate 3 and Captivate 4 – not all of which are backwards compatible):
@FLASHPLAYER_CLASSID
@FLASHPLAYER_CODEBASE
@FlashPlayerVersion (which doesn’t work for Captivate 3)
@MOVIETITLE
@MOVIENAME
@MOVIEWIDTH
@MOVIEHEIGHT
@MOVIELOOP
@SKINCOLOR
@WMODEVALUE
I’ve had no luck finding these anywhere through manuals, online searches, forums, etc… At least you were kind enough to publish the system variables for others with a similar need.
Thanks,
David
Pingback: pipwerks.com » Journal » Captivate 4 variables gone wild
I really like your post. Does it copyright protected?
Hi Kelly,
As long as you link to this post as the source then you are free to do what you want with the information ;o)
/Michael
I am using the Table of Contents (TOC) to allow the user to navigate through the demo that I have written. To maximize on realestate I have for the slides in the demo I placed a transparent TOC over the slides. What I want to know is there a variable that can be set to hide the TOC. This would be great in that after the user jumps to a slide they want the TOC could be automatically be hidden.
Hi Bahrook,
There aren’t any specific variables in Captivate to do this unfortunarely.
However, on Philips blog KCWebPlaze wrote a comment about controlling the TOC. Perhaps you can use that. Here is a link to the post http://pipwerks.com/journal/2009/05/16/captivate-4-variables-gone-wild/
/Michael
Hi,
thanks for this useful info.
I need to display “tomorrow’s date” in my project. For this, I have tried creating a user variable and calling it from within a standard TextBox, however I am not that experienced.
The user variable is supposed to yield “current date + 1”. What is the right way to do this?
Your help is much appreciated ^^
– Eda
Hi Eda,
You can use the variable $$cpInfoCurrentDate$$ for that purpose.
First you need to create a new user defined variable called constructedDate. This variable will hold the output once the date has been calculated.
Now you create an advanced action and create the following statement:
constructedDate = cpInfoCurrentDate + 1
You then need to assign your advanced action to play somewhere in your project in order for that to populate the constructedDate variable. I put mine on the first slide and as “On Slide Enter” – Execute Advanced Action – Name of your action.
After this you can get the value of your variable by using $$constructedDate$$ in a text box and this will give you the current day + 1.
/Michael
Hi Michael,
wow, so fast!
Thanks for the timely & precise reply. (honestly, I’ve struggled a little more myself today, and in the meantime kept coming here & checking =))
This actually worked! Now I just have to copy the same TextBox to every place where the “wrong” date is shown.
I knew it had stg to do with an action, though these “advanced actions” are tricky. Now with your “how to”, it’s easy for me =)
Thank you so much!
I’ll be back 😉
Loves,
Eda
ps. incrementing the parameter “cpInfoCurrentDate” will not work, because this is returned as a string. What I did was, take day, month, and year seperately, increment the day, and combine all 3 together with “.” between.
It looks like this in my TextBox:
$$user_tomorrows_date$$.$$cpInfoCurrentMonth$$.$$cpInfoCurrentYear$$
Just wanted to highlight, in case s.o else faces the same situation.
Thanks again! =)
Hi Eda,
Exactly – I should have mentioned that as well but you figured it out ;o)
I always put the date together like you mentioned because the date format in Europe is different from the one used in USA.
/Michael
Can you help with why the Exit button won’t work on the skin? Thanks!!
I am creating a database tutorial in captivate 4 and have created separate interactive .swf files for each button located on the database interface. I have placed a transparent button over each database interface button and when the button is pushed, an interactive .swf animation plays that the learner uses to complete the form or report. My problem is, when I insert the .swf animation and it is say 1 minute and 6 seconds long, the file stops playing at 1 minute and 6 seconds regardless of whether the user has completed the interactive animation and returns to the database interface slide. Since the .swf file is designed to be self paced, the user may not have completed the interactive .swf animation. What can I do to allow the user to complete the .swf animation without the .swf animation completing at 1 minute and 6 seconds and returning to the database interface slide? I have flash CS4, as well.
I’m not certain this makes sense, but any ideas would be greatly appreciated.
Thank you.
Hi Michael,
it’s Eda again. I had asked about displaying “Tomorrow’s Date” before, remember?
I’ve noticed the approach we discussed above has a flaw:
(day + 1) yields invalid results when today is the last day of the month (like what if today is 31st of March, for ex? day+1 = 32. Or what if it’s February 27th?).
So we need another solution here.
Suggestions?
Thanks for your guidance,
Eda
Hi Eda,
Good point ;o) Didn’t actually think of that at all.
I don’t think that you will be able to solve that in Captivate since you would actually need to know the number of days in each month and probably also take the leap year into account.
The only way I think you can solve it is to have a widget/component developed in Flash that will do these calculations for you and then pass the value to a user defined variable in your Captivate project.
/Michael
Hi Michael,
thank you for the timely reply.
Yes I was (almost) using the same method somewhere else when it occurred to me – luckily! *whew*
Oh my. So there’s no way out..I’m sure our team will not / can not go that far (develop stg in Flash) for this – we are going to have to leave it out.
Thanks anyway and good luck Captivate-ing! Keep up the good work – I’ll be visiting you often 😉
Eda
HELP!!!!!
Is there any way(var) that tracks the number of missed clicks thruout the project? Im building a lockStep type procedure tutorial… cant seem find a way to force a restart after 3 missed clicks. Anyone?
@Usafegressdude – no way to track that as far as I know. There is no system vars that tracks missed clicks throughout a project unfortunately. Seems like this type of interaction can only be buildt in Flash.
/Michael
Michael- Thanks for your reply. Im thinking of using 2 buttons, a right button and a large wrong button underneath. Now if I can figure out how to “code” the wrong button to count missed clicks, or increment a var… somthing like
++errorCount
if (errorCount >=2)
{
gotBackToBeggining()
}
…or somthing =P
I am attempting to access user-defined variables within Flash that were set and defined within Captivate and am having issues. I have a variable called “goal1” that is set with a text entry box on a previous slide (I have confirmed the variable is stored using a caption with $$goal1$$). However, when I attempt to access it through Flash (an object I place in the Captivate module), I am using txtOuput.text = _root.goal1;. Is there something else I should be calling in Flash to have access to the variable?
I created a software simulation (training)
On the third attempt, the learner gets the error message, but I would like them to be able to be told what to do (ie where to click) and then have the opportunity to follow through on the action. So, its almost as if, there should be four attempsts, but on the third one they should get the information on where to click. Then they follow though. Any ideas on how to deal with this one?
Barb
Barb, You could set up a variable and action that shows the objectafter 3 tries, if you are incrementing. Also, be sure to reset your variable to 0 when leaving the slide, so on return it reacts the same way.
Michael – second day with captivate, trying to gain control over some slides with flash, what is the path to get to the Captivate variable? I am trying,
enter_btn.onPress = function() {
//try to access the captivate file
_root.cpCmndShowPlaybar = 1;
}
So far..Thanks in advance
Hi Zach,
Looks okay to me how you are doing it. Try and access another variable and see if that works out. If not try and exchange the _root with _parent._parent._parent._parent and see if you get lucky. I always test with the goto next slide variable since that is easy to see if it works ;o)
/Michael