You could pause the Captivate project when you start to preload it by using the Captivate system variables. Then when your file has been loaded 100% you could resume it again by using a different system variable.
You can see a list of the various system variables here: http://www.cpguru.com/2009/04/28/system-variables-in-captivate-4-%e2%80%93-a-complete-list /
The relevant variables for you would be:
rdcmndPause = 1; (to pause the project)
rdcmndResume = 1; (to resume playback)
Naturally you need the instancename (where you load your Captivate movie into) infront of the variable name.
myLoaderContainer.rdcmndPause = 1;
Thanks cpguru/Michael. I'll try your suggestion.
Actually I've tried to use the rdcmndResume, I played with its values on flash 0 and 1. When I used 0 nothing happens. So I think I really need to use the rdcmndPause system variable.
1 person found this helpful
Yeah it's kinda strange with these variables the way they work but you do need to use both of them. The rdcmndPause = 1 will pause the project. Setting it to zero again will not unpause it. Therefore you need the rdcmndResume = 1 to resume playback.
I tried your suggestion, and it works. I have another question. How can I detect if the captivate movie is already playing? I cannot use the statment
if(captivateMovieHolder.rdcmnd.Resume == 1) since that is the default value that captivate uses.
Another thing. While the loading is still on progress the slider can be used and the user can view the captivate movies contents. I also found on your blog that you can disable scrubbing. I can use that while the movie is loading. But is there a way to make it functional again once the movie has been fully loaded?
I don't think there is an easy way to detect if the Captivate movie is playing or not, but I could be wrong. I don't know of any variable that will show it
I think you could get around it by using the RdinfoCurrentFrame variable to check for the current frame and then recheck after a small delay and see if the first value is lower than the second value. That would indicate that the Captivate movie is playing.
As for re-enabling the scrubber that is not possible. If you use the directions on my blog then that means that you are deleting the event handler for the scrubber and there is no way to reinstate that once it has been deleted.
A workaround could be to insert a blank slide of 1 second as your first slide. Then set the variable cpCmndShowPlaybar to 0 on that slide - that can be done directly in Captivate - slide properties. On slide 2 (which is where your actual content is) then reset the variable to 1 and the playbar would show.
Hope this helps.
The manipulation should all be in flash and not on captivate. So that the one that will maintain the video recording section will just record and put directions on the captivate movie and publish it without the preloader.
Yes deleting the event cannot be redone. What I did was to turn the progressbar, next and back buttons visibility to false and reshow them once the movie has been loaded completely.
I had created a Flash container for software demos. There were demos on several screen that were captured in CP. I ran into so many issues that I eentually exported those to Flash from Captivate. I was using AS3, but I never added the loader to the stage until the load was complete and kept it invisible until the frame where it was needed. Here is my code to get an idea. I'll see if I can find a version when I was still using CP swf files. The problem with those is if the user clicked the back button, it was almost impossible to accurately control the CP movies.
if (demo1 != 0)
var demo1Request = new URLRequest("demo1.swf");
var demo1Loader = new Loader;
demo1Content = demo1Loader.content;
demo1Container.visible = false;