Thursday, February 11, 2010

Developing your own Captivate Playback Controller

Been working on a course that relies heavily on integrating Captivate demos into a large Flash based course environment. Was getting very frustrated at the limitations of the swf that Captivate exports and started wondering if there was a way to access variables within that swf file to control it's playback.

Sure enough thanks to an article at pipwerks about using Javascript to control captivate, I was then directed to the Captivate Giant Manual, which eventually gave me this list of variables that you can use to control a captivate swf if you load it into your flash movie:


rdcmndPrevious
set to 1 to go previous slide

rdcmndNextSlide
set to 1 to go to next slide

rdcmndPause
set to 1 to pause the project

rdcmndResume
set to 1 to resume showing a paused project

rdcmndRewindAndStop
set to 1 to rewind and stop the project

rdcmndRewindAndPlay
rset to 1 to rewind and play the project

rdcmndGotoFrame
go to a specific frame

rdcmndExit
set to 1 to exit

rdcmndInfo
display the information window

rdinfoFrameCount

total number of swf frames in the project (this is not the number of frames in the main Timeline, but the sum of
all slide frames)

rdinfoSlidesInProject
number of slides in the project (including hidden slides)

rdinfoCurrentFrame
current frame (goes from 1 to rdinfoFrameCount when you play the project)

rdinfoCurrentSlide
slide currently playing (zero based)

rdinfoSlideCount
number of slides in the project (not including hidden slides)

rdIsMainMovie
can be used to identify whether the SWF corresponds to the main Adobe Captivate project


Note: To control the project through the skin file, add the prefix cpSkinLoader_mc to the variables.

Friday, February 5, 2010

Internal or Offline Learner Tracking for Articulate Quizmaker

Based on a discussion at the eGuild, it seems there is a demand to setup Quizmaker for tracking users without using a LMS or any online solution.

The following is the beginning steps into creating your own custom tracking, this will show you how to extract users interactions from Quizmaker, from here you will need to use whatever technology (asp, php etc) to save the information.

I think that this solution is perfect for those who have no other option than to develop their own internal solution, and can not use third party web apps. For those who do not have this restriction, I highly recommend that you use Articulate Online. You can go swimming in JS and Server Side Languages all you want but you're not going to get as complete and detailed reports as Articulate Online can offer you.

Anyways, the solution:

1. Publish a Quiz for a LMS

2. In the main quiz folder remove everything except quiz.html, quiz.swf and the quiz_content folder.

3. Create a new javascript file named tracking.js

4. In that javascript write the following function:

function lms_DoFSCommand(command, args)
{
alert("command" + command);
alert("args" + args);
}


5. In quiz.html add this to the header:

<script LANGUAGE="JavaScript1.2" SRC="tracking.js" TYPE="text/javascript"></script>


You should now get Popups while you use the quiz, this shows you all the quiz interactions. From here you can parse and send this information to a flat file.