The Adobe Captivate, Presenter and eLearning Suite Product Management team will meet with customers in the US during the weeks of March 21 and March 28. These are amazing opportunities to participate Continue reading…
Posts in Category "Technical Support"
Further to Shameer’s post on “Publish to iPhone from Captivate and eLearning Suite“, here are the next steps to generate the iPhone app. from your Captivate SWF.
These are manual steps and you need to use the terminal/shell to execute the command on a Mac machine where you have your Apple Developer Certificate and Provisioning Profile installed: Continue reading…
On IE, Captivate 4, Action script 2 courses use FS Command as transfer mechanism and Actionscript 3 courses use External Interface based mechanism. Captivate 5 courses only support Actionscript 3 and use External Interface mechanism to transfer reporting data. For Actionscript 2 based courses FSCommand is best transfer mechanism and External Interface mechanism is the best for Actionscript 3 based courses.
So, moving from Local connection based data communication mechanism to External Interface based mechanism on Mozilla based browsers solves the inconsistent data reporting problem. There is simple one line change in SCORM html template which will make Captivate SCORM courses to use External Interface mechanism on Mozilla based browsers.
This issue will be fixed in the upcoming version of Captivate.
Please follow the steps described below. Same for both Captivate 4 and Captivate 5.
• Please go to $CaptivateInstallFolder/Templates/Publish/SCORM/1_2
• You will find Default.htm and Custom.htm
• Please go to line 31, “g_intAPIType = 1;” and change it to “g_intAPIType = 0;”
• Follow the same steps for the Default.htm and Custom.htm in folder $CaptivateInstallFolder/Templates/Publish/SCORM/2004
Modified SCORM1.2 template is also shared on Acrobat.com Default.zip
One more announcement carrying on with our focus on training resources for Captivate: The Adobe documentation team (Smitha) has created a well-structured set of tutorials on Captivate 5. The tutorials are a healthy mix of step-by-step instructions that can serve as a job aid; and videos to provide more depth to the explanation.Irrespective of whether you are looking to understand the basics of Captivate, or if you are looking to spend some serious time exploring the advanced features that help you push the boundaries with Captivate- these tutorials will suit you. The series of tutorials is workflow-based — the users are guided step-by-step to create and publish their projects using Cp. The workflows are categorized into Basic, Intermediate, and Advanced levels, keeping in mind the different skill levels of users. For example, a Basic user is presented with a simple workflow with four quick steps to create a sample demonstration in Captivate. An Advanced user is guided from the designing and setting-up-a-process level to the final refined output of the Captivate project.
We recently updated the eLearning channel on AdobeTV with seven new shows, containing close to 40 new episodes. Most of these are tutorials created for Adobe Captivate 5 and eLearning Suite.
The tutorial videos cover both the new and pre-existing features of Captivate. They also discuss the new UI and workflows in detail. Mark Fletcher, our community expert, has done a wonderful job in creating these videos.
The videos are tagged and organized by Captivate function; And also allow you to comment, rate and ask questions once you sign in.
Make sure you view the videos in full screen mode for full clarity.
Captivate playbar swfs have a complicated structure. Though you can create a playbar from scratch, its advisable to duplicate an existing playbar FLA file and make changes in it to suit your needs. You can find the source FLA files for the canned playbars in the following location:
<Adobe Captivate Installed Directory>\Templates\PlaybackFLA\AS3
Height of the playbar:
To change the height of the playbar, adjust the height of pbcBk_mc movie clip inside cpPlaybar symbol in Library. Also to get correct height, you need to change the height of the shape present in pbcBkHeight symbol in Library. pbcBkHeight symbol should contain a single shape (without stroke) and its height should equal to that of the background height set in pbcBk_mc.
Each playbar button except slider should follow this structure:
- icon_mc – A movie clip on which Button Icon color will be applied
- btn_mc – Each btn_mc movie clip should follow this structure:
- color_mc – A movie clip on which Button Face color will be applied
- glow_mc – A movie clip on which Button Glow color will be applied
- mouse states – Need frames with these labels – up, down, rollover. Whenever a mouse up event (or normal state) occurs on this playbar button, it will be asked to jump to the frame with label “up”. Similarly for “down” and “rollover” frames when mouse down and mouse over events occur respectively.
- actions – A layer with action script in its first frame. It should have the following actions:
- btnTipsId – a variable which specifies the index of the tooltip array to be picked up when mouse is hovered over the playbar button [More about this array in Tooltips section below]
- onClicked – A function which calls parent.onPBCBtnClick() with a valid action. These are the list of valid actions – “rewind”, “back”, “play”, “pause”, “forward”, “cc”, “audioOn”, “audioOff”, “exit”, “info”, “TOC”, “FastForward”, “FastForward1″, “FastForward2″ and “print”. – Based on the functionality of the button you need to give appropriate name.
Slider should have the following structure:
- thumbBase_mc –background movie clip of the slider (Button Face color)
- proClr_mc – a movie clip to show the completed progress of the movie (Button Glow color)
- thumb_mc – a movie clip which indicates the play head (Button Icon color)
- actions – mouse up and mouse down listeners which will call parent.onSliderMouse(false) on mouse up and parent.onSliderMouse(true) on mouse down.
All the colors (Button Icon, Button Face, Button Glow) can be applied in Captivate Skin Editor. Background color in Skin Editor will be applied to the movie clip named pbcBk_mc inside cpPlaybar symbol.
Playbar movie clip is the movie clip which contains all the playbar buttons, background movie clip and a background height movie clip. It should have the following movie clips (specified below are instance names):
- pbcBk_mc – Background movie clip
- pbcRewind_mc – Rewind
- pbcPause_mc – Pause
- pbcPlay_mc – Play
- pbcBack_mc – Backward
- pbcForward_mc – Forward
- pbcFF_mc, pbcFF1_mc, pbcFF2_mc – Fast Forward
- pbcSlider_mc – Slider
- pbcAudioOff_mc – Audio Off
- pbcAudioOn_mc – Audio On
- pbcTOC_mc – Table of Contents
- pbcCC_mc – Closed Captioning
- pbcExit_mc – Exit
- pbcInfo_mc – Info
- pbcPrint_mc – Print
- pbcBkHeight_mc – a movie clip to determine the height of the playbar [See Height of the playbar section for more details]
pbcBk_mc and pbcBkHeight_mc should be placed compulsorily. The rest of them are optional. However if all of them are present, user can choose either to have/not have them from Skin Editor.
pbcPlay_mc and pbcPause_mc are mutually exclusive at runtime. Only one of them can be visible. Similarly pbcAudioOn_mc and pbcAudioOff_mc are mutually exclusive.
Finally place the playbar movie clip on the main timeline with the instance name as pbcBar_mc. You can have an optional auto play button placed on the main timeline with the instance name autoPlay_mc.
To change the tooltips, find the MovieClip named Localization in the library. Open this symbol and go to its Frame 1. Here you can find the tooltips for the playbar buttons. Change them based on the requirement. Apply caution while changing the tooltips. Changing the order of the array elements will result in incorrect tooltips. If you want to change the language of the playbar, assign the appropriate array variable to pbcBtnTips variable. btnTipsId variable inside playbar buttons refer to the index in this array (pbcBtnTips).
Reordering Playbar buttons:
Playbar buttons will always be placed in the following order:
There is no direct way in which you can change this order.
Auto Reordering trick: However you can change atleast the order/layout of some of the buttons in this way: Renaming the instance names of pbcRewind_mc as pbcExit_mc and vice versa will swap the position of Rewind and Exit buttons.
However you might not be able to do this for every button because of some linking buttons play/pause, audio on/off and Fast Forward buttons.
Manual Reordering trick: If you want to hard code the positioning values, you can do so by adding an event like OnEnterFrame in background movieclip and then set the values for the button positions.
The code below will move positions for either Top or Bottom stretched. If you are using the playbar positioned on either side then you can change the x to y and play about with the values until the buttons are in the position you want. You need to check the registration point of the buttons and accordingly adjust the x and y positions.
Open the desired skin template FLA and open the symbol pbcBarBkColor in the library and add the following script in its first frame.
I’m also attaching a couple of sample playbars where the ordering is changed.
If you have created a new playbar swf, you need to place it in the following location for Captivate to pick it up:
<Adobe Captivate Installed Directory>\<lang>\Gallery\Playbars\AS3
Just close the Skin Editor if it is already open and open it again. You can check your new playbar in the playbar drop down.
Adobe Captivate customers have always been very active on the forums. It has been a great place to interact with customers, resolve their issues and learn more from them. Recently our customer Paul Thrippleton raised a CPTX file size bloating issue in forums. Thanks Paul for raising the issue. We worked on it and have found out that the issue is seen because of the audio files (.wav and .mp3 files). Although we will be surely fixing it in the next release, the good news is we have an easy workaround to overcome the problem.
Let me first explain the problem:
One of the ways to insert audio file in Captivate, is to insert it on slide and using the “Audio Split Options” dialog, spread it across another slides.
Insert an audio file on slide or directly in library. Then duplicate the audio file in library
Insert an audio file on slide or directly in library. Then “Update” the audio file in library.
In above scenarios the file size of the CPTX file increases more than normal. This issue is not noticed if the audio files are smaller in file size because then the increase in CPTX file size too will be not so noticeable.
Note: This issue happens only if you have inserted audio in Captivate and performing any of the above scenarios without editing the audio file.
We have a simple workaround to the problem.
-Once the audio is inserted into the Captivate project, go to library.
- Right click the audio file and select “Edit with Captivate”
- Make a minute modification in audio file waveform. (Delete small portion of audio) and save the changes.
Now you can apply any of the scenarios mentioned above and they will work without increasing the CPTX file size.
- This issue is not noticeable when audio files are of smaller sizes.
- This issue affects only the CPTX file size and cannot affect SWF file size.
- Issue is seen only if you perform above scenarios using an unedited imported audio file.
- This issue is only in Captivate 5 and not in any other releases of Adobe Captivate.
Have you ever used Adobe Captivate widgets? Widgets can enhance the type of content you can create with Adobe Captivate. You can leverage the complete capabilities of Adobe Flash via widgets. Once created, widgets can be used any number of times just like any other Captivate object. This really helps in creating engaging rapid elearning content. Captivate ships with a number of useful widgets. Captivate widgets are basically swf files which follow certain rules. One rule being (the blog is about this rule), the widget swf should register certain callbacks via External Interface. These callbacks should be made in the first frame of the swf.
Most of the widgets created for Captivate are Adobe Flash based widgets. Creating widgets using Adobe Flex/Flash builder is a little tricky. But once you get to know that, creating really powerful widgets takes no time. With Flex, you can leverage the vast set of inbuilt components which are powered by Flex framework to create rich and engaging Captivate widgets.
If you had ever tried creating a Captivate widget in Flex, I guess most of you wouldn’t have succeeded. You might have tried adding the External Interface callbacks either in applicationComplete or creationComplete handlers of the Application class in Flex. This method doesn’t work because Flex creates the Application in its second frame, where as Captivate expects the callbacks to be added in the first frame.
So, here we are providing a hassle free way to create Flex based widgets for Captivate. Follow these four simple steps and you can create your Flex based Captivate widgets in no time.
Step 1: Include the two ActionScript files provided below, in your Flex project.
Step 2: In your main mxml file, Change the mxml application start tag from
<s:Application to <cp_widget:CPWidgetApplicationBase xmlns:cp_widget="*"
And the end tag from
</s:Application> to </cp_widget:CPWidgetApplicationBase>
Step 3: Open CPWidgetSystemManagerBase.as and set the properties marked in TO BE SET BY WIDGET DEVELOPER section, according to your requirement.
- Set this to true, if you are overriding IsReadyForSnapShot function in your main application, else keep it false
- mWidgetType :
- To create a static widget, set mWidgetType to 0
- To create an interactive widget, set mWidgetType to 1
- To create a question widget, set mWidgetType to 2
- If you want a specific Edit Mode width, set this parameter, else set it to -1
- If you want a specific Edit Mode height, set this parameter, else set it to -1
Step 4: Override the widget specific methods provided in CPWidgetApplicationBase.as file in your main mxml file. For example, if you are trying to create a static widget, add these methods in your main mxml file and build the logic.
- override public function getInspectorParameters():Object
- override public function setInspectorParameters(inParam:Object):void
- override public function setParameters(inParam:Object):void
- override public function cpSetValue(inVariable:String, inValue):void
- override public function IsReadyForSnapShot():Boolean
Overriding all the functions is not a must. Choose which functionality you want in your widget and proceed accordingly.
That’s it!! It’s not difficult at all.
Optionally, if you want to mute further calls from Captivate, which might be required when you do state changes in Flex, call setCanDelegateCall(false) in your application class. When you want to unmute, call setCanDelegateCall(true).
If you are using mx:application, then you need to do these changes in CPWidgetApplicationBase.as: Uncomment, Import mx.core.Application; and comment out import spark.components.Application;
In case you are having issues with getting the flex widget to work, you need to merge the Flex framework into the swf. To do so, Goto Project > Properties > Flex Build Path > Library Path > Select the Flex SDK and choose ‘Merged into Code’ as the linkage type.
Provided below are sample flex based widgets for Adobe Captivate 5 created in Flex along with the source.
MyFlexWidget is a static widget, which displays whatever is entered into it in widget properties.
MyInteractiveWidget is an interactive widget; you can select which button is the correct one among the given two, and that one will act as the correct answer
MyQuestionWidget is a question widget; which has similar functionality as that of the interactive widget.
Try them for yourself!
Update: To compile the samples, you need to update the class path.To update the path, Goto Project > Properties > Flex Build Path > Source Path > Edit.
Just update the path to the following.
[Adobe Captivate Installation Directory]\ActionScript\export\as3
[Adobe Captivate Installation Directory] is the directory where captivate is installed. Typically it will be C:\Program Files\Adobe\Adobe Captivate 5
Issue: One of the tutorial file is missing from the Tutorials List which are accessed from the Adobe Captivate 5 welcome screen.
To Fix the issue, please go through the following Kowledgebase Article.
Install this patch to fix the issues that occur while upgrading earlier versions of Adobe Captivate projects to Adobe Captivate 5.
- Take a backup of the file VeelaUpgrader.dll.
- Download the Zip File.
- Unzip the contents, rename AdobePatchInstaller.abc to AdobePatchInstaller.exe
- Double click set-up file. The patch gets installed, replacing the old VeelaUpgrader.dll file with the new one.
- Take a backup of the VeelaUpgrader framework file.
- Download the attached file.
- Rename the Adobecaptivate-5.0-core-Update.zip to Adobecaptivate-5.0-core-Update.dmg
- Mount the dmg file and then install the patch installer.
- The patch gets installed, replacing the old VeelaUpgrader framework file with the new one.
When an earlier version of Adobe Captivate project is upgraded to Adobe Captivate 5, the following issues were observed:
- The output options specified in the Publish dialog box are not retained.
- Adobe Captivate 5 crashes when an Adobe Captivate 4 project containing a matching question slide with column 2 options at a higher z-order than column 1 options, is opened in Adobe Captivate 5.
- If the earlier version of Adobe Captivate project had the ‘Contain’ operator in advanced actions, the script contents are not displayed in the project after the upgrade.
- If the earlier version of Adobe Captivate project had Arial Regular font for matching question column 1, the font is changed to Arial Narrow font after the upgrade.
- The slides that were deleted in the earlier version of Adobe Captivate project are also shown in the TOC.
- A projectwith Audio of custom bit rate less than 32 kbps does not play the audio properly.
- Inverted quotes for answers in correct entries appear in Text Entry Boxes.
EXE files published from Adobe Captivate 5 do not open on machines that do not have Adobe Captivate 5 installed on them. The following error message is displayed:
“This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.”
Download and install the latest patch for this issue, publish the project as an EXE file again, and then try opening it. If you are Publishing to Windows EXE from Mac version of Adobe Captivate, install this patch in Mac as well.
To download and install the patch for this issue:
1. Close Adobe Captivate.
2. Go to the following folder and take a backup of the FakeFlash.exe file:
<Adobe Captivate 5 Installation Folder>/ExecutablePublish
3. Download the file FakeFlash.zip from here
4. Unzip the contents of this zip file. Locate the FakeFlash.exe file in the unzipped folder.
5. Copy this FakeFlash.exe file into the folder <Adobe Captivate 5 Installation Folder>/ExecutablePublish
Audio makes your elearning content more engaging and useful to learners. You can add audio to your Adobe Captivate project either by recording yours or somebody else’s voice directly or by inserting a previously recorded audio file (.AVI, .WAV). When you add audio to a slide, it appears as a separate ‘element’ in the timeline. You can synchronize the audio with the slide by adjusting its timeline.
When you publish the project, Adobe Captivate embeds the audio within the output file. The embedded audio can be a single file or multiple files based on the timing and type of audio. Adobe Flash Player that plays the Adobe Captivate movie also plays the audio along with the movie.
Sometimes, you may notice a lag in the audio timing and that it is not synchronized perfectly with the movie. The audio that must ideally end with a slide spills over to the next slide. In this article, let’s examine why such issues occur and how they can be solved.
Why does this issue occur? Before understanding the reason for this issue, let’s first understand how Adobe Captivate publishes audio.
Whenever an audio starts and ends at the same time as that of the slides, Adobe Captivate ‘stitches’ up the audio objects on the contiguous slides into a single file when the project is published.
Suppose the audio on slide 1 runs till the end of the slide as shown below:
The audio on the next slide, slide 2 starts right from the beginning of the slide as shown below:
In such a case, the audio files on both the slides are ‘stitched’ and published as a single audio file. Similarly, if all the slides contain audio that start at the same time as that of the slides and spread till the end of slide, Adobe Captivate creates a single audio file in the published output.
Note: If the audio on the contiguous slides are of different types (mono and stereo), Adobe Captivate generates separate audio files for each of the types even if the audio starts and ends at the same time as that of the slides.
Adobe Captivate is designed to do so to logically stitch up users’ narrations that are done during or post-recording of a screen or application. A single audio file helps to keep the continuity in the narration intact.
Adobe Flash Player plays the Captivate published audio and stops only when the specified duration elapses or when you intervene and stop it. Therefore, with a single audio file in an Adobe Captivate movie, the audio and video run parallelly at their own pace resulting in synchronization issues.
Is there a workaround? Yes, a very easy one. Tweak the audio timing in such a way that Adobe Captivate generates and embeds multiple audio files in the output. To do so, extend the duration of the slide a little more than that of the audio. For example, if the current slide and audio duration is 4 seconds, extend the slide duration by another 0.3 seconds, and retain the audio duration at 4 seconds.
The following illustration shows the difference between the audio and the slide duration:
Now, Adobe Flash player can control the beginning of each audio file at the specified time in the movie.