With Flash's soft-state handling when it comes to not being scrict about accessing instantiated objects or not confusion arises. I've seen this gripe before and it takes a bit of work to get used to working with a programming language that isn't strict about your code attempting to access all undeclared objects/variables. This is most important when working with heavy OO application development and when you're trying to figure out scope of different objects.
When it comes to the realm of constructing a "classic" pre-loader there's something I always end up ignoring. In AS2.0 we know that all class files are loaded via the SWF when you configure it to (via the "publish settings" and configuring the "export frame"). When you have a preloader you'll want all the "beef" of the application AS2.0 files to be loaded in a later frame so that your loader will show quickly. The issue is that if you have any class files or components in the library that you're using they will NOT work if you have them set to "export of the first frame".
Conclusion: You MUST uncheck the "export in first frame" checkbox in any item's "linkage" or "properties" from the library menu in order for them to work if the "export frame for classes" in the publish settings is anything else but frame 1.