Merry meet again my fellow RoboDenizens...
If you recall, back in June, 2006 I introduced a scry article advising of the different ways to incorporate Captivate content in your RoboHelp projects.
As luck would have it, the fine folks at Adobe were hard at work and have since introduced a brand spanking new version of Captivate. Where it was formerly known as Macromedia Captivate 1.01, it has been further enhanced and re-branded as Adobe Captivate 2.
So why am I revisiting this issue?
Captivate 2 introduces some definite new wrinkles into the mix. There are new considerations and possible pitfalls when placing Captivate content in your projects. You may recall from the Captive Content scry, that I advised there were potentially two files involved.
The .SWF that contains the actual Flash movie.
The .HTM "companion" page used to present the .SWF properly.
So where are the wrinkles?
I'm not sure of the exact reasons, but if you view a Captivate 1 movie in Internet Explorer, you typically encounter some oddness. Specifically, as you mouse over the movie, it becomes surrounded by a frame. If you rest the mouse pointer over the frame, shortly you see a "Tooltip" type of popup message that says "Click to activate and use this control".
You see this message because Microsoft found themselves on the losing end of a lawsuit and was ordered by the court to change the way Internet Explorer presents content such as Flash. The odd part of all this is that while this behavior is observed when viewing the movie using good old Internet Explorer, it performs a disappearing act if you insert the movie into a .CHM file. If you insert the movie into a .CHM file, you don't have to click to activate it. You may wonder why I think this is odd behavior. After all, Internet Explorer (IE) is the browser and the .CHM file is a help file, no?
While you would be correct in assuming they are definitely two different entities, the .CHM viewer relies on different components of the browser to display content. Thus I would think if content has an issue in IE, the same would result inside the .CHM.
Sooo, if it works just dandy inside a .CHM file, why should I care?
Well, one workaround for this behavior is to reference some external JavaScript for displaying the movie. The method the Adobe Captivate developers have implemented is to include an additional JavaScript file that is used when displaying a Captivate 2 movie. Unless you tweak things, this additional file absolutely MUST be present in order for your movie to load and play. If the JavaScript file isn't present, the movie will not play for your user! So this JavaScript file must now be included among the mix of files if you are importing the HTML page Captivate creates and adding it to your project. If you recall, when I published the June 2006 scry, I advised that there are two files involved if you are adding Captivate content to your RoboHelp projects in this manner. So as you can see, we now have at least THREE files involved.
The Captivate .SWF that comprises the main movie
The Captivate created HTML "Companion page"
The Captivate created "standard.js" JavaScript file
Wrinkles abound!
Hmmm, as if this weren't enough new potential variables to toss into the mix, Captivate 2 tosses in one more, just for good measure! With Captivate 2, you may also have one additional .SWF file in the mix.
What!? How can this be?
Well, Captivate 2 introduces a new feature known as "Skins". Really, all a skin does for you is to add an additional area below your movie where the playback controls are placed. This way, you don't obscure any part of the movie and the controls sit in their own area. So if you are using skins, your possible files now look like this:
The Captivate .SWF that comprises the skin
Here is how the sequence of events would be with a typical Captivate movie using a skin.
You double-click the HTML "Companion page"
This HTML page loads into the browser.
Code in the page looks for the standard.js file.
Assuming the standard.js file is found, a function inside loads the skin .SWF file.
The skin .SWF file internally handles loading the main movie
The main movie then begins to play.
Where RoboHelp may fail you
Believe it or not, RoboHelp X5 may appear to fail in two places with this approach.
Notice that I told you when a skin is involved, the initial .SWF (the SKIN SWF) internally calls the SWF containing the main movie. As a result, when you try to import the .HTM "companion" page that Captivate created, it only references the skin SWF. So RoboHelp knows to try and bring along the skin SWF. But because the skin SWF internally knows about the main movie SWF, RoboHelp is blissfully unaware of it and doesn't bring it along for the ride. So bringing the main movie SWF will (at this point) become a manual and secondary process you will have to perform after the import occurs. When you think about it, this isn't really RoboHelp's fault. How is it supposed to know that inviting a date to dinner also involves the date's sibling?
The second issue is a rather nasty little bug that surfaces from time to time with RoboHelp X5. When you attempt to add .JS files (or some other content types) to baggage, they appear to be added just fine but aren't actually added to the project. So you end up having to manhandle the "behind the scenes" files. This is described fully at my fellow Adobe Community Expert Peter Grainge's site. As I see no need to reinvent the wheel with how to work past this, I'll just point you there if this is what you need to do. Click here to view the article on Peter's site.
Okay, so most of the above was related to only one of the two possible ways to include Captivate content in RoboHelp HTML. I'll now discuss the second way.
The second way you can insert Captivate content is by clicking Insert > Multimedia... and browsing the file system to locate the .SWF you want. This way is actually preferable to the first. At least it is in my opinion. Why? Because I normally want to include a Captivate movie at some arbitrary point inside an existing topic. Using the first approach of importing the Captivate created .HTM file, you do end up with an HTML page, but all that page contains is the Captivate movie. The second approach allows me to pop the movie within the body text of an existing topic. And the neat thing is that RoboHelp HTML pretty much does the same thing with the code as Captivate does. It handles placing all the necessary code in the page.
So what could fail with this approach?
Well, for starters, here is that Captivate 2 skin rearing its little head again. If you have created a Captivate movie that uses the new skin feature, all you see is the main movie. The playback controls aren't present. Unless, of course, you know to insert the ProjectName_skin.swf file. But if you do this, you see only your movie and not the movie along with the playback controls.
Having your cake and Edith too
So how can one create a Captivate 2 movie that is complete with the nifty new playback controls and still easily insert it into RoboHelp in much the same manner as Captivate 1?
One way to do this is to forego the skin. Many users think that foregoing the skin also means they cannot have the sleek new Flash based playback controls and this leaves them stuck with the older BMP image based controls. But this isn't true. Now if you actually prefer the former BMP image based controls, they are still available to you. But you can actually have the newer Flash based controls along with your movie all in a single .SWF file. However, be forewarned that there is a trade off. And the trade off is that even though you see the new controls, they are positioned in much the same manner as the Captivate 1 controls were. This means they are placed on top of the movie and not in their own area.
So assuming you read that last paragraph and have decided a single .SWF output is fine with you, here is what you do. It's really simple! Remember, none of this applies to Captivate 1. We are talking strictly Captivate 2 here.
Within Captivate 2, click Project > Skin... The Skin Editor dialog should display.
Click the Borders tab.
DE-select the Show Borders check box to turn them off.
Now RE-Publish your Captivate movie and you should have a single .SWF that can be imported into a RoboHelp HTML project.
So there you have it. Hopefully I've done a fair job of explaining the pitfalls as well as demonstrating ways to work past the quirks of inserting Captivate 2 content in your RoboHelp projects.
Click here to see contrasting examples
Until next month... Namasté and Merry part!
The URL in the text field below links to this page.