Inside, the material inside the SWF is divided into frames, and when the Flash player loads the SWF, it starts to display and execute content for the frames immediately after loading them, even if the subsequent ones are not completed yet. As long as your preloader is saved earlier in the early SWF frames and your heavy content is saved later, it is possible that the preloader is very possible.
The problem that you are likely to encounter is that if you create the content in the usual way, then all the objects in the class are stored in the first frame. The easiest way to change this is in your FLA file, in the section "Publish Settings"> "Flash"> "AS3 Options" there is a dialog box "Export classes to frame:". If you change this parameter from 1 to, say, 5, you can put a simple preloader (using frame scripts) in the first couple of frames of the root timeline and make sure that everything that uses classes is placed somewhere after 5- go frame.
If you prefer to use frame scripts in preloader, then it is also possible to use a class-based preloader, but then you need to go to the properties dialog of each object associated with the class and uncheck the "Export in frame 1" checkbox, and then make sure that it placed somewhere in the hierarchy of the timeline to make sure it is exported, which is a bit more painful. Naturally, the class object representing the preloader should still be exported to the first frame.
Or you can run the end result around the whole problem and make your preloader as a separate SWF package that just downloads itself and then loads the actual content and displays the bootloader panel. Often people choose this option if they would like to reuse the preloader.
source share