I recently spoke to someone who’d experienced this problem – and they were at a complete loss as to why it was happening.
That isn’t to say they were crap or a complete n00b or anything, just that good old MM keeps sneaking stuff past us developers and, with no obvious clues and little documentation on this problem, it can sometimes take a little digging to get to the solution.
In this case, it was down to the MM components that had been used in the movie. By default, these happy fellas sit in your library, automatically set to export themselves on the first frame. At other times, you may actually need to set an library item to export if, for example, you need to use an attachmovie command to add it to the movie at runtime.
In either case, you can bring up the linkage properties dialogue by right-clicking the symbol in the library and set it to NOT export on the first frame.
Exporting on the first frame means that the item will be available for actionscript use on the first frame and therefore will have to be downloaded before the first frame, leaving that lovely blank white rectangle you see on many sites before the preloader kicks in.
There’s never a good enough reason to use the first frame for anything other than a preloader, so, instead of making people wait for your movie in front of a blank, white screen, you use an ‘asset introducer’ frame.
An ‘asset introducer’ frame (for want of a better term) is a frame in your movie after the preloader, but before the main movie starts, that contains all the library items that you plan to use in your movie. The frame is never seen by the end user as you tell your preloader to skip over it using a gotoAndPlay command, but because the items are present on the stage, flash feels obliged to load them.
(You can use an extra scene to accomplish the same thing, but I’d never willingly advise anyone to use scenes in flash movies… ever!)
This frame can contain graphics, buttons and movieclips, but can also hold MM Components, sounds and video holders. With nothing being exported before frame 1, flash only needs to download minimal information before it can display that all important first frame and your preloader will start from 0% 🙂