In a recent project, we made significant use of custom Flash interactions imported into an overall Captivate ‘framework’. Several of the slides for this project were fairly simple and did not require complex development. To allow the customer to make updates to those slides easily, and to divide the build time between a few different internal developers, some of the content was created in Captivate directly and the more complex interactive components were created in Flash, saved as SWFs, and then imported into the Captivate project.
One troublesome aspect was a lack of synchronicity between those custom SWFs and the published Captivate project’s playback. Despite a Captivate setting of ‘Play for Duration of Animation’ and/or ‘Synchronize with Project’ for the imported SWFs, some of those slides were cutting off too early, or the slide took too long to reach the end once the interaction was completed.
Investigation revealed that some of the Flash components were developed with different FPS settings, 24fps in this case. Captivate defaults to a 30fps playback. Thus the SWFs were playing too slow…so the CP slide came to an end before the SWF had completed.
So when developing a Flash components to integrate with your Captivate project, be sure to match them to the Captivate FPS setting! Flash defaults to 12fps. Captivate defaults to 30fps. To adjust Captivate’s FPS setting, select the Edit > Preferences > Project option and look for Publish Settings.
As long as the custom SWF files match the FPS of the Captivate project, the only SWF-setting that should be needed (assuming it applies) is ‘Play for Duration of Slide’. Matching up the ‘Duration of Animation’ or ‘Synchronize with Project’ likely is not required – though it depends on the purpose of the SWF (explanation of these Animation Timing settings).
As a side note, also be sure to match Actionscript versions. Captivate 5 and 5.5 are AS3 only, so importing AS2 widgets or components will cause all sorts of odd behavior. Be sure your custom Flash pieces are all AS3! Now we just have to wait for popular tools like Adobe Presenter and Articulate Presenter to update to AS3 so any components developed in those tools can likewise be imported successfully…
edit: Adobe Presenter has recently been updated to AS3 - see more recent blog post.