Main

October 20, 2009

New in Captivate Exchange

Captivate 4 has several avenues for possible extensions- especially given the new widgets and variables features. Captivate, like many of the other Adobe products, has an exchange where third parties can share product extensions and other assets that the larger Captivate community might find useful. While the exchange has been dormant for a while, a new set of content has been introduced on exchange this month. The new content on exchange ranges from widgets to stock animations- each of which you will find useful in enhancing the projects you create using Captivate. Most of the content on exchange is free. Even the ones you need to purchase are great value for money- given that it will allow you to differentiate your Captivate projects from the others, or achieve that special task that your customer wants executed in just this specific manner. Some of the new stuff on exchange I like are:

  1. Resume widget/ Bookmark widget- which allows your users to resume a course from the point they left off.
  2. Short answer formatting widget- that allows you to specify the font format for the short answer question type in Captivate
  3. The YAOTI animations- stock videos of actors phrasing common lines used in a course
  4. The corner peel widget- a nice fancy navigation alternative
  5. Launch Pad- a Flexible framework to launch multiple Captivate movies from one web page.

Also, if there are assets or extensions that you would like to share with or sell to the community, please submit them on exchange.

,,,

September 12, 2009

extend google map widget, make it interactive

Adobe Captivate supports three kinds of objects. Static , Interactive and Question. Static objects inside Captivate are Text captions, animation, highlight box. Difference between static and interactive objects are that latter allows user to interact which means that when on slide it should pause the slide. It has success, failure and hint captions associated with it which are shown in corresponding cases. And lastly it can participate in scoring of the course. An example of interactive object in captivate would be a button or click box.

It has been long time I have written about using google maps API inside Adobe Captivate widgets. Look at the widget created in the post. Try the widget here. BTW the place in the widget was top view of "Statue of Liberty" - Lat - 40.6894 Long - -74.0447. But you know that this widget had something missing as you would have to insert a button on the slide to pause and let user do something. Why not it should stop by its own. What would it need to let widget pause the slide and behave like a interactive object. The answer is interactive widgets.

And what would it need to change our static widget to interactive widgets. You can read the finer details here and below are bare minimum steps needed -

Step 1 - you would change the API isStatic() to isInteractive(). This tells Captivate that the widget is interactive and gives you all the additional functionality. Doing this step alone will pause the captivate slide and give you the following dialog.

Below option lets you choose the default captions associated with interactive objects.

And should it be included in quizzing.

As you can see there are more options available to you and its very similar to a button or a click box.

Step 2 - Define a variable interactiveWidget_mc which is used to talk to captivate movies.

Step 3 - Define three functions setFailure, setSuccess, setShowHint. The widget developer has to decide when to send success event. In my case I will pass success event when user has clicked on the widget. I will set up a event listener for mouse clicks and when user has clicked I will call setSuccess.

function Release(event:MouseEvent):void{           

              setSuccess();

}

this.addEventListener(MouseEvent.CLICK, Release);

I will leave other funtions for you to try out.

See these in action. Click here or the image below to download the Captivate movie.

Source files discussed in this post -

Source file for widget(.FLA file) - Download
Widget file which can be used in Adobe Captivate 4(.swf file) - Download

Do let us know what other things you tried to enhance it.

,,

September 1, 2009

Captivate variables - how to access and control them from external movies..

Adobe Captivate 4 has a feature using which you can access and control captivate movies from external movies. You can find more details here.

Here is how you access Adobe Captivate movie variables from external swf:

Action Script 3:
root.<variable_name>
Ex: root.rdinfoCurrentSlide, root.cpInfoAuthor

Action Script 2:
_root.<variable_name>
Ex: _root.rdinfoCurrentSlide, _root.cpInfoAuthor

Note : Few of the variables in Captivate AS2 movie are defined inside movie class. Hence cannot be accessed directly with _root. In these cases _root.movie.<variable_name> is the correct way to access variables defined inside rdmovie class. As a general rule, for AS2 to access a variable we should first try access it using _root.<variable_name>, if that comes undefined, then access using _root.movie.<variable_name>.

Variables that are defined inside the movie class are: cpInfoCurrentDateString, cpInfoCurrentDate, cpInfoCurrentMonth, cpInfoCurrentYear, cpInfoCurrentDay, cpInfoCurrentTime, cpInfoCurrentHour, cpInfoCurrentMinutes, cpInfoEpochMS, cpCmndVolume, cpInfoElapsedTimeMS, rdcmndGotoSlide, cpCmndGotoFrameAndResume, rdcmndNext, rdcmndPlaybarMoved, rdcmndMute, rdcmndCC, rdisMainMovie, cpInfoCurrentSlide, cpInfoCurrentSlideType

Blog post by - Deepak R, Adobe Captivate


,

June 19, 2009

Captivate Widgets Tutorial: Create your first Widget

Greetings, widget enthusiasts!! In this post I am going to help you create your first Captivate Widget in just a few steps. And by the end of this post you will be able to actually see your widget in Action inside Captivate.

Today I’ll demonstrate how you can create a simple ‘Print Slide’ widget. So, shall we get started? Launch Captivate and do a File->New->Widget in Flash. Choose Widget type -> Static and ActionScript Version-> ActionScript2.0. Hmm, now you see Flash (provided you have Flash installed on your machine) is launched and an untitled page is opened in it.

1. In Flash go to Window->Components and from User Interface select-drag a button and drop on the stage. Select the button and then go to Window->Component Inspector->Parameters Tab and then in the “label” field change the label to “Print”.

Now back on the Properties panel give the instance name of the button as “Print_btn”. 

2. Now select the edit area (or the stage) and change the Document ‘Size’ to 120X 50 in the Properties panel by selecting the document and then clciking on the Edit button. We make this change to ensure that the final widget consumes minimum real estate on the Captivate slide. The document size might differ according to the requirements.

3. Place the “Print” button in the middle of the document and align it appropriately horizontally and vertically so that it looks like this :

 

Continue reading "Captivate Widgets Tutorial: Create your first Widget" »

May 15, 2009

List of System Variables in Cp4

,,

Michael recently posted the exhaustive list of Captivate 4 system variables in his blog. Below is a vetted version of the same. Some more variables have been added and the default value for the quiz variables have been defined..

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 un-mute

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

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

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

rdcmndExit 

0

Exit the movie. set 1 to exit

 

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

cpInfoPrevSlide

 

Slide Previously playing before current slide

CaptivateVersion

v4.0.0

Shows the Captivate version

rdcmndInfo

0

Display information about Adobe Captivate

 

 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

cpInfoEpochMS

 

Time elapsed, in milliseconds, since January 01, 1970

 

Quizzing variables:

Variable name

Default value

Description

cpQuizInfoAnswerChoice

Chosen Answer

cpQuizInfoAttempts

1

Number of times the quiz has been attempted

cpQuizInfoLastSlidePointScored

0

Score for last quiz slide

CpQuizInfoMaxAttemptsOnCurrentQuestion

0

Maximum attempts on the current question

cpQuizInfoNoQuestionsPerQuiz

0

Number of questions in quiz

cpQuizInfoPointsPerQuestionSlide

0

Points for the question slide

cpQuizInfoPointsscored

0

Points scored in the project

cpQuizInfoQuestionSlideTiming

0

Time limit in seconds for current question

cpQuizInfoQuestionSlideType

choice

Question slide type(Multiple-Choice/True-False/..etc)

cpQuizInfoQuizPassPercent

0

Passing percentage for the quiz

cpQuizInfoQuizPassPoints

0

Passing points for the quiz

cpQuizInfoTotalCorrectAnswers

0

Number of correct answers

cpQuizInfoTotalProjectPoints

0

Total project points

cpQuizInfoTotalQuestionsPerProject

0

Number of questions per project

cpQuizInfoTotalQuizPoints

0

Final quiz score

cpQuizInfoTotalUnansweredQuestions

0

Total number of unanswered questions

cpInfoPercentage

0

scoring in percentage

 Update: Also look at Philip's post on Cp variables: Captivate variables gone wild


March 20, 2009

Use world in your eLearning courses - google map widget for Adobe Captivate 4

,,

During our school days how many times we have been given quizzes around identifying places on maps. I was a good student of geography but still wondered if there could be better way than seeing few black lines on white papers. I was wondering if this has changed in this world of rich learning content. Then I thought can I use Adobe Captivate 4 to make the learning better. How would the experience be if I could add a living map application to eLearning courses. Learner can still go to any map site but the difference here is that the eLearning course would control the flow of learning. Please click here or on the image to see what I achieved. It will open a content created in Adobe Captivate 4.

Many other interactions can be thought of around this making learning really interesting.

How this was created -
We used widgets functionality of Adobe Captivate 4. The download link for this widget is given at the bottom of this post. You could download and use the widget file in your Adobe Captivate 4 projects.. You could specify the type of map and the latitude and longitude.

Please refer to previous post on youtube widget. Apart from using youtube apis we learnt to show and hide the controls depending on the movie state. We will use some more functionality to use it to create a google map widget. Read this blog post to get more information about setting up the development environment and creating a animation file using google maps API for Flash Action Script 3.We have created the user interface elements for latitude, longitude and map type which can be used to take input from users. We have written a function to set up visibility of these controls. The name of function is setControlsVisibility(). We will call this function with arguments true or false to make these controls. Most of the core functionality handling map is in function showMap().

Source files discussed in this post -

  1. Source file for widget(.FLA file) - Download
  2. Widget file which can be used in Adobe Captivate 4(.swf file) - Download

It could have been done in better way and there could be few bugs with the widget but would like to hear from you how you solved that.

Update 1 - You can use this widget as it is if you are not hosting it on any website or blog. But in order to put it on any website you have to change the API key in FLA file and republish the content. You can get google maps API key here.It will ask you the website url you would be putting the content.


February 17, 2009

youtube widget for Adobe Captivate 4

,,

Here is a step by step guide to create a widget. While this is a basic widget it will highlight concepts of the Adobe Captivate 4 widget framework. In future posts we will slowly move to more complex widgets covering other aspects of this framework -

  1. Decide user interface of your widget – The user interface should allow users to specify the youtube video url. It will have a label and text input box.
  2. Open Adobe Captivate 4. Select menu File>New>Widget in Flash… It will open a dialog. Select “Static” and “Action Script 2.0”. Say ok. Adobe Flash will open with action script template for static widget in action script 2.0
  3. Inside Flash select Windows>Components>User interface section. Insert the components 'Label' and 'Text Input'. Name them “myLabel” and “youtubeUrl”. We will set the visibility of these controls such that they are only visible inside the “Widget Parameters” tab of widget dialog. This is the tab where users will be entering the values. Look inside onEnterFrame function how we have handled the visibility. We make _visible field = true only when widgetMode is ‘Edit’
  4. Set up the data exchange facility for widget and Captivate. We will use few variables so that value of youtube url could be passed back and forth from Captivate project and youtube widget. We will change getInspectorParameters(), setInspectorParameters() and setParameters(). We have added one line code for getting and setting from the textbox.
  5. Adding the core functionality. Refer to the code at this post where action script code is given for reference. Copy all of them except last statement which loads the player. Paste them at the beginning of the action script window. The statement ytPlayerLoader.loadClip loads the video. We will change this to load video from the user input. This has been moved to onenterframe function where we get the youtubeurl from captivate movie, parse them in the format which is accepted by the API and call loadClip.
  6. Publish this in a Flash version greater than 8. The swf file you got is your widget.
  7. Here is a Captivate movie showing how to use it

This is just to show the capabilities of Adobe Captivate widgets framework. There might be few modifications required before it can be used in real life projects. Please feel free to play around with it and share your findings on the changes done to this.

Source files discussed in this post –

.


February 5, 2009

Authoring – limited by your creativity not the tool.

,,,

Captivate users – do you sometimes feel that we were cramping your style and limiting your creativity?

In simple terms, why could not Captivate allow you:

  • To use your creativity to define new buttons, charts, graphs and other display objects.
  • To explore with new quizzing experience to engage different user segments.
  • Take full advantage of the media revolution happening on YouTube/Flickr etc. and elsewhere on the net.

Sure, Captivate has a great set of quizzing options, interactions and support for rich media. But, as great as these are, how often have you felt that you could be better off by tweaking something, adding something – of course you could not.

What you had to do was an frustrating cycle of:

  1. Go to this page containing wish list form
  2. Fill up your feature request
  3. Someone from Adobe accepts this as a actionable feature request.
  4. Wait for next release of Captivate.
  5. Hopefully, you have finished your project by then and ready with another request! Go back to step 1!

Of course, if you were friendly with the in-house Flash developer, you could some of this and then add these as Flash animations through Captivate. But, of course if you wanted to make minor modifications later on in the authoring workflow or in the maintenance cycle, you needed to depend on the continuing goodwill of your Flash friend.

But, that was till Captivate 3. With Captivate 4 we enter the bold world of “Widgets” which allows you to extend Captivate authoring platform. Limited only by your creativity – well almost!

“Widgets” still need you to access a Flash Developer, but provides you with complete independence to make changes to the “widget” later on without you having any knowledge of ActionScript or Flash.

And keep watching this space for series of posts on this topic. This will include tutorials on creating widgets, sample widgets which you can use and finer details.