I often hear from Captivate developers who are required to output smaller and smaller SWFs, while making their lessons more and more interactive. Fortunately, adding interactivity to a lesson does not negatively impact the size of the published SWF. Rather, imported assets such as audio, video and images are the main culprits behind SWF bloat.
There are some things that you can do while working in Captivate that may lower the size of the published SWF. Here are a few of my favorites:
Shorten the Lesson
Ideally, none of your lessons (modules) play for more than 5 minutes. However, if you can trim the lesson down to 2-3 minutes of playtime, you'll save on SWF file size. More, but smaller lessons are better than fewer, larger lessons. As a bonus to smaller SWFs, shorter lessons will allow your learners to move through the modules fast--something that all eLearning developers should make a priority.
Use Fewer Slides
Keep the number of slides in your Captivate project as low as possible. Simply put, the more slides in your lesson, the larger the published lesson will be, especially if your lessons are larger (a large width and/or height) and you captured pixel-heavy backgrounds.
Use Less Audio
I'm a huge fan of adding audio effects and voiceover audio to a lesson. However, nothing will bloat a published SWF quite like audio. If you need to use audio, check out the next section.
Use a Lower Audio Bitrate
The higher the bitrate, the higher the quality of your audio. However, since most people will be consuming your published content using a system with something less than high fidelity audio capabilities, consider a bitrate of 64kbps or lower.
Loop Background Audio
If you are going to include background audio, use a tiny portion of the audio file. During the import process, you can elect to loop the audio. The smaller the portion of the background audio used, the smaller the published lesson will be.
Avoid Animations
Adding animations to your lessons is a great idea. However, since the animations will be embedded within the published SWF, they will cause the SWF to bloat.
Avoid FMRs
Full Motion Recordings (FMRs) are videos created by Captivate when you drag your mouse during the recording process. Since FMRs are videos, they'll bloat your published SWF.
Externalize Resources
By default, your Skin, Widgets, FMRs and Animations are embedded in the published SWF. If you externalize them, the published SWF will be much smaller. However, you will now have to keep track of the resources and ensure they are stored in the same folder as the main SWF or they won't appear in your published lesson. You'll find the option to Externalize Resources by choosing File > Publish Settings.
Lower the Size of the SWF During the Publish Process
Earlier I suggested that you avoid or limit the use of audio, FMRs and use as few slides as possible. It's highly unlikely that you will be able to avoid those kind of resources completely (or at all). In that case, you can lower the size of the SWF when you publish.
- Choose File > Publish Settings and select SWF Size and Quality. Select Compress Full Motion Recording SWF file to compress any SWFs in your lesson.
- Drag the slider in the Settings area from High down to Medium or Low. As you do, notice that your Slide Quality Settings will lower to Low(8 bit), your audio quality will lower and the quality of the Jpeg images used in your lesson will lower.
Note: The lower you drag the Settings slider, the more your SWF will compress. However, the lower you go, the more you run the risk of altering the quality of the lesson's assets so much that the appearance of your lessons will suffer negatively. You can also drag the slider down to Custom and manually set the options for your lesson's resources.
The suggestions above aren't an exhaustive list of possibilities when it comes to lowering the size of your SWF. If you've got some sure-fire techniques to lower the size of your published SWF, feel free to send it to me. I'm happy to post your suggestions here in a future issue.
***
hi, sometimes I use TOC in order to reduce load time
Unfortunatelly, as long as I know, variables are not remembered by Captivate when moving from one .swf to the next one. So TOC can't help you if you use variables in your project.
If Captivate 6 or anybody has found a way to keep variables, please let me know !
Posted by: daniel | September 22, 2012 at 03:47 PM