I have a main swf that I load external swfs onto the stage. I am trying to fix the loading order. Currently when a button is pressed, the swf is preloaded, the current swf is on the stage with the preloader showing, then the preloader disappears and the swf plays the outro transition.

I can't figure how to change the order so that currently loaded swf is removed from the stage, show the preloader and then show the new swf.
Code:
package
{
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.display.Loader;
    import flash.net.URLRequest;
	import flash.events.MouseEvent;
    import flash.events.*;
	import flash.display.DisplayObject;
	import SWFManager;
    
    public class V2 extends MovieClip
    {
        private var sections_array:Array;
        private var section_buttons_array:Array;
        
        private var loader:Loader;
		
		private var sectionHolder  : MovieClip;
        
        private var swf:String;
		
		
		private var nextSection:int;
        
        private var id:int=0;
		private var homeLoc = "./swfs/home.swf";
		
		private var currentSection:MovieClip;
		private var playingOutro:Boolean = false;
		private var nextSectionIsLoaded:Boolean = false;
		private var lastSectionIsOver:Boolean = false;
		
		private var currSection : Number;
		private var prevSection : Number = -1;
        
        public function V2()
        {
            init();
        }
		
		

        
        private function init():void
        {
            stop();
            stage.frameRate=31;
            
            preloader_mc.visible=false;
            preloader_mc.fill_mc.width=0;
            
            sectionHolder = new MovieClip();
            sectionHolder.x = 37;
            sectionHolder.y = 42;
           
            addChild( sectionHolder );
           
            
            sections_array = new Array('./swfs/section1.swf',
            './swfs/section2.swf',
            './swfs/section3.swf',
            './swfs/section4.swf',
            './swfs/section5.swf');
            section_buttons_array = new Array(btn1,btn2,btn3,btn4,btn5);
			
			addMenuListener();
			addMenuEvents();
			addEventListener( "removeMe" , outroFinished );
			loader = new Loader();
			loadSection( null );	
		}
	
        private function addMenuListener():void
        {
            for(var i:int=0;i < section_buttons_array.length ;i++){
				section_buttons_array[i].id=i;
            }
        }
		
        private function loadSection( evt: Event ):void
        {
			if( evt == null ) {
				swf="./swfs/home.swf"
				currSection = 0;
				
			} else {
				prevSection = currSection;
				currSection = evt.target.id;
				swf=sections_array[currSection];
				currSection ++;
				
			};
			var request:URLRequest=new URLRequest(swf);
			initListeners(loader.contentLoaderInfo);
			
			loader.load(request);
			

        }
        
        private function initListeners(dispatcher:IEventDispatcher):void 
        {
            dispatcher.addEventListener(Event.OPEN,start);
            dispatcher.addEventListener(ProgressEvent.PROGRESS,atLoading);
            dispatcher.addEventListener(Event.COMPLETE,completed);
        }
        
        private function removeListeners(dispatcher:IEventDispatcher):void 
        {
            dispatcher.removeEventListener(Event.OPEN,start);
            dispatcher.removeEventListener(ProgressEvent.PROGRESS,atLoading);
            dispatcher.removeEventListener(Event.COMPLETE,completed);
        }
        
        private function start(event:Event):void 
        {
            preloader_mc.visible=true;
			addChild(preloader_mc);
        }
		
        private function atLoading(event:ProgressEvent):void 
        {
            var n:uint=(event.bytesLoaded/event.bytesTotal)*100;
            preloader_mc.fill_mc.width=n;
			
			
			
			
        }
		
       	private function completed(event:Event):void 
        {		
		
		 if( prevSection != -1 ) {
		 	var targ : Object = SWFManager.SWFArray[ prevSection ];
		  	targ.gotoAndPlay( "out" );
          	preloader_mc.visible=false;
			
		 } else {
			sectionHolder.addChild(loader.content); 
			
		 };
        }
		
        private function outroFinished(e:Event):void{
    		
			var tmpHolder : MovieClip = new MovieClip();
			addChild( tmpHolder );
			tmpHolder.addChild( loader.content );
			sectionHolder.removeChildAt( 0 );
			sectionHolder.addChild( tmpHolder );
			var loadtarg : Object = SWFManager.SWFArray[ currSection ];
		 	trace( "currSection : " + currSection );
		    loadtarg.gotoAndPlay( 2 );
			
		}