Can't access stage with preloaded swf! Help please!

Here is the problem. I have two FLA/SWF, one is named main.swf, and other is called preloader.swf.

The document class of preloader.swf references to com.jeffreyseiffert.Preloader

The document class of main.swf references to com.jeffreyseiffert.Main

I have 3 Actionscript files. Preloader.as, Main.as, and TopLevel.as (last one thanks to senocular.com)

Preloader.as as you can tell is a preloader. It does url request for main.swf. Then when the event tells it that it is done loading it adds it to the stage.

Both of them extend TopLevel. But it brings up this error when it tries to load the file.

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at TopLevel$iinit()
at com.jeffreyseiffert::Main$iinit()

I even commented out all the code in Main.AS but the default constructor but still same error. Anyhelp in how i can allow Main.as access stage would be appreciated. I will post my code here

Preloader.as


package com.jeffreyseiffert{
    import TopLevel;
    import flash.net.URLRequest;
    import flash.display.Loader;
    import flash.display.LoaderInfo;
    import flash.display.Sprite;
    import flash.display.DisplayObject;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.events.StatusEvent;
    //create new URLRequest object
    public class Preloader extends TopLevel {
        private var loader_mc:bar_mc;
        private var background_mc:Background_mc;
        private var percent_txt:percentage_txt;
        private var myloader:Loader;
        private var myRectangle:Sprite;
        private var incrementer:Number;
        private var home_btn:Sprite;
        public function Preloader() {
            
            
            // initialize sizing
            trace("Preloader initialized");
            loader_mc=new bar_mc();
            background_mc=new Background_mc();
            percent_txt=new percentage_txt();
            myRectangle=new Sprite();
            incrementer=0;
            resizeHandler(null);

            TopLevel.stage.addChild(background_mc);
            trace("background_mc added to stage");
            TopLevel.stage.addChild(loader_mc);
            trace("loader_mc added to stage");
            TopLevel.stage.addChild(percent_txt);
            trace("percent_txt added to stage");
            TopLevel.stage.addChild(myRectangle);
            trace("myRectange added to stage");


            var myrequest:URLRequest=new URLRequest("nav.swf");
            //create new Loader object
            myloader=new Loader();
            //load URLRequest into loader
            myloader.load(myrequest);
            //create listener to response to PROGRESS event
            myloader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler);
            myloader.contentLoaderInfo.addEventListener(Event.COMPLETE,alldone);
            //create a function to respond to the PROGRESS listener
            stage.addEventListener(Event.RESIZE,resizeHandler);


        }
        public function progressHandler(myevent:ProgressEvent):void {

            var myprogress:Number=myevent.target.bytesLoaded / myevent.target.bytesTotal;
            loader_mc.scaleX=myprogress;
            percent_txt.p_txt.text=Math.round(myprogress * 100) + " % Loaded";
            createRect(myprogress,stage.stageHeight - background_mc.height - 100,0,5,stage.stageHeight,0xFFFFFF);

        }

        public function createRect(stagePercent:Number,x:Number,y:Number,mWidth:Number,mHeight:Number,color:Number):void {
            incrementer+=1;
            myRectangle.alpha=.10;
            myRectangle.graphics.beginFill(color);
            myRectangle.graphics.drawRect(stage.stageWidth*(stagePercent),y,mWidth,Math.random() * stage.stageHeight);
            myRectangle.graphics.endFill();
            myRectangle.graphics.beginFill(color);
            myRectangle.graphics.drawRect(stage.stageWidth*(stagePercent),stage.stageHeight,mWidth,Math.random() * (stage.stageHeight/2));
            myRectangle.graphics.endFill();


        }







        public function resizeHandler(event:Event):void {
            background_mc.x=(TopLevel.stage.stageWidth - background_mc.width)/2;
            background_mc.y=(TopLevel.stage.stageHeight - background_mc.height )/ 2;
            loader_mc.x=(TopLevel.stage.stageWidth - loader_mc.width)/2;
            loader_mc.y=(TopLevel.stage.stageHeight - loader_mc.height)/ 2;
            percent_txt.x=(TopLevel.stage.stageWidth - percent_txt.width)/2;
            percent_txt.y=(TopLevel.stage.stageHeight - percent_txt.height+70)/2;



        }

        //create a function to respond to COMPLETE listener
        public function alldone(myevent:Event):void {


            TopLevel.stage.removeChild(loader_mc);
            TopLevel.stage.removeChild(background_mc);
            TopLevel.stage.removeChild(myRectangle);
            stage.removeChild(percent_txt);
            myloader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,progressHandler);
            myloader.contentLoaderInfo.removeEventListener(Event.COMPLETE,alldone);
            TopLevel.stage.removeEventListener(Event.RESIZE,resizeHandler);
            addChild(myloader);
            //stage.removeChild(loader_mc);

        }

    }

}

Main.as


package com.jeffreyseiffert
{
    
    import flash.display.Sprite;
    import flash.display.DisplayObject;
    import flash.display.MovieClip;
    import flash.events.*;
    import flash.utils.*;
    import TopLevel;

    
    
    public class Main extends TopLevel{
        
        function Main (){
            //stage.scaleMode=StageScaleMode.NO_SCALE;
        
            
            //stage.align=StageAlign.TOP_LEFT;
            trace("Enter Constructor for Main");
            //create new Loader object
            //resizeHandler(null);
//    
//            //create listener to response to PROGRESS event
//            //create a function to respond to the PROGRESS listener
//            container_mc.main_menu.resume_btn.addEventListener(MouseEvent.CLICK,loadResume);
//            container_mc.main_menu.web_sites_btn.addEventListener(MouseEvent.CLICK,loadWebsites);
//            container_mc.main_menu.graphic_designs_btn.addEventListener(MouseEvent.CLICK,loadGraphicDesign);
//            container_mc.main_menu.contact_me_btn.addEventListener(MouseEvent.CLICK,loadContactMe);
            
        }

        //public function loadResume(e:MouseEvent):void{
//            trace("loading resume");/*
//            var myrequest:URLRequest=new URLRequest("resume.swf");
//            //load URLRequest into loader
//            myloader.load(myrequest);
//            myloader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler);
//            myloader.contentLoaderInfo.addEventListener(Event.COMPLETE,alldone);*/
//            
//        }
//        public function loadWebsites(e:MouseEvent):void{
//            
//        }
//        public function loadGraphicDesign(e:MouseEvent):void{
//            
//            
//        }
//        public function loadContactMe(e:MouseEvent):void{
//            
//            
//        }
//        public function  progressHandler(myevent:ProgressEvent):void {
//
//
//        }
//        public function createRect(stagePercent:Number,x:Number,y:Number,mWidth:Number,mHeight:Number,color:Number):void{
//            //incrementer+=1;
//            //myRectangle.alpha=.10;
//            //myRectangle.graphics.beginFill(color);
//            //myRectangle.graphics.drawRect(stage.stageWidth*(stagePercent),y,mWidth,Math.random() * stage.stageHeight);
//            //myRectangle.graphics.endFill();
//            //myRectangle.graphics.beginFill(color);
//            //myRectangle.graphics.drawRect(stage.stageWidth*(stagePercent),stage.stageHeight,mWidth,Math.random() * (stage.stageHeight/2));
//            //myRectangle.graphics.endFill();
//            
//            
//        }
//
//        public function alldone(e:Event):void{
//            
//        }
//        public function resizeHandler2(event:Event):void {
//            trace("resize");
//            
//            container_mc.x=(width-(container_mc.width/2))/2;
//            container_mc.y=20;
//
//        }
    }
    
}


TopLevel.as

package {
    
    import flash.display.DisplayObject;
    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    
    /*
     * TopLevel class
     * have all document classes extend this
     * class instead of Sprite or MovieClip to
     * allow global stage and root access through
     * TopLevel.stage and TopLevel.root
     */
    public class TopLevel extends MovieClip {
        
        public static var stage:Stage;
        public static var root:DisplayObject;
            
        public function TopLevel() {
            TopLevel.stage = this.stage;
            TopLevel.root = this;
            this.stage.scaleMode=StageScaleMode.NO_SCALE;

            this.stage.align=StageAlign.TOP_LEFT;
        }
    }
}

I really appreciate those who take the time to help me out with this.