My listeners wont hear the event

Morning all,
I switched from screenLayer:Sprite to screenLayer:MovieClip and that seemd to clear things up. Now I’m left with my original big problem… no errors but my listener cant hear the event and I am at the limit of my miniscule understanding soooooo here’s my code… the listener that’s not hearing is document>screens.menuScreen.buttonToIntroScreen.addEventListener(“introScreen”,toScreenHandler);
look for the [COLOR=DarkOrange]orange[/COLOR] text

document:

package
{
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import traceDL;
    
    public class Document extends MovieClip
    {
        public var loadingProgress:LoadingProgress;
        public static var screens:ScreenHandler = new ScreenHandler();
        var menuScreen:MenuScreen;
        var introScreen:IntroScreen=new IntroScreen;

        public function Document():void
        {
            loadingProgress = new LoadingProgress();
            loadingProgress.x = this.parent.width/2;
            loadingProgress.y = this.parent.height/2;
            addChild( loadingProgress );
            loaderInfo.addEventListener( Event.COMPLETE, onCompletelyDownloaded );
            loaderInfo.addEventListener( ProgressEvent.PROGRESS, onProgressMade );
            //this.addChild(screens);
            //Application.screens.switchTo("SelectedScreen");
            //Application.screens.switchTo("SelectedScreen", false);



        
        }
        public function onProgressMade( progressEvent:ProgressEvent ):void
        {
            loadingProgress.setValue( Math.floor( 100 * loaderInfo.bytesLoaded / loaderInfo.bytesTotal ) );
            
        }
        public function onCompletelyDownloaded( event:Event ):void
        {    removeChild(loadingProgress);
            gotoAndStop(3);
            playGame();
        }
        public function playGame():void
        {
            
            var menuScreen:MenuScreen=new MenuScreen;
            addChild(screens);//adding the screens(ScreenHandlerClass)
            trace("screens children=" + screens.getChildAt(0));
            screens.addChild(introScreen);//if i dont add here nothing shows up
            introScreen.buttonToMenuScreen.addEventListener("menuScreen",toScreenHandler);//listening for the buttons event
           [COLOR=DarkOrange] screens.menuScreen.buttonToIntroScreen.addEventListener("introScreen",toScreenHandler);[/COLOR]
            //screens.screenLayer.menuScreen.buttonToIntroScreen.addEventListener("introScreen",toScreenHandler);
            
            loaderInfo.removeEventListener( Event.COMPLETE, onCompletelyDownloaded );
            loaderInfo.removeEventListener( Event.COMPLETE, onProgressMade );
        

        }
        public function toScreenHandler(evt:Event):void
        {
            //for (var i:uint = 0; i < screens.numChildren; i++)
//            {
//                trace ('	|	 ' +i+'.	 name:' + screens.getChildAt(i).name + '	 type:' + typeof (screens.getChildAt(i))+ '	' + screens.getChildAt(i));
//            }
            trace("eventHeard");
            screens.removeChild(introScreen);
            var eventString:String=new String(evt.type);
            trace(evt.type + "handleToMenuScreen");
            screens.switchTo(eventString);
        }
    }
}

screenHandler:

package  {
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.events.Event;

    public class ScreenHandler extends MovieClip{
        public var menuScreen:MenuScreen=new MenuScreen;///all these were private
        private var playScreen:PlayScreen;
        private var mBase:MBase;
        private var asBase:AsBase;
        private var introScreen:IntroScreen;
        
        private var newScreenName:String = "";
        //private var oldScreenName:String ="introScreen";
        
        public var screenLayer:MovieClip = new MovieClip();
        
        
        public function ScreenHandler() 
        {
            //trace("screenHandler");
            this.addChild(screenLayer);
            //for (var i:uint = 0; i < numChildren; i++)
//            {
//                trace ('	|	 ' +i+'.	 name:' + getChildAt(i).name + '	 type:' + typeof (getChildAt(i))+ '	' + getChildAt(i));
//            }

            
        }
        
        
            public function switchTo(screenName:String):void
            { 
            
                //trace("switchTo()"+ screenName);
                newScreenName = screenName;
                //trace(newScreenName);
                switchScreens();
                    
            }

        
          
            private function switchScreens():void
                {
                    //trace("switchScreens()");
                     //trace("screenLayer children" + screenLayer.numChildren);
                    
                    removeOldScreen();
                    makeNewScreen();
                }

                
        
        private function removeOldScreen():void
        {
            if(screenLayer.numChildren>0)
            {
                //trace(screenLayer.getChildIndex());
                var oldScreen:MovieClip;
                oldScreen = screenLayer.getChildAt(0) as MovieClip;
                //trace( oldScreen + "oldScreen is");
                screenLayer.removeChild(oldScreen);
            }
        }

        private function makeNewScreen():void
        {
            //trace("makeNewScreen");
            //trace(newScreenName);
            switch(newScreenName)
            
            {
                case "introScreen":
                    introScreen = new IntroScreen();
                    trace("SwitchStatementIntroScreen");
                    screenLayer.addChild(introScreen);
                break;
                case "menuScreen":
                    menuScreen = new MenuScreen();
                    screenLayer.addChild(menuScreen);
                    trace("SwitchStatementMenuScreen")
                break;
                case "playScreen":
                    playScreen = new PlayScreen();
                    screenLayer.addChild(playScreen);
                break;
                case "asBase":
                    asBase = new AsBase();
                    screenLayer.addChild(asBase);
                break;
                case "mBase":
                    mBase = new MBase();
                    screenLayer.addChild(mBase);
                break;
        
                default:
                trace("adding IntroScreen  default");
                    introScreen = new IntroScreen();
                    screenLayer.addChild(introScreen);
                break;
            }
        newScreenName = "";
    }




     }
}

menuScreen:

package
{
    import flash.display.MovieClip;
    public class MenuScreen extends MovieClip
    {
        
        var buttonToIntroScreen:Button1=new Button1("introScreen")
        
        public function MenuScreen():void
        {
            buttonToIntroScreen.x=100;
            buttonToIntroScreen.y=100;
            addChild(buttonToIntroScreen);
            
            //trace("menuScreenHere");
            //needs buttons that effect :fuel repair goods
            //needs to show current weight and efficiency
            //needs to show btrace("");ank account
            //needs to choose route
            //needs a button that starts the level
            //start level x
            
        }
    
        
    }
}

button1:


package
{
    import flash.display.*;
    import flash.events.*
    
    public class Button1 extends MovieClip
    {
        var fireString:String = "";
        var fStringHolder:String ="";
        
        //Since you will recreate the event/folder with information each time the event happens, 
        //there is no use holding a reference to it.
        //var eventFolder:Event//=new Event(fireEvent);mayBe move this part into thefunction;
        
        public function Button1 (fireEvent:String):void
        {
            //var fString:String=fireEvent;
            
            fireString = fireEvent;
            fStringHolder=fireEvent;
            //trace(fireString + "is fireString");
            
            var button:SimpleButton= new SimpleButton();
            button.x=20;
            button.y=20;
            
            button.upState= createCircle(0x00ff00,15);
            button.overState= createCircle(0xffffff,16);
            button.downState= createCircle(0xcccccc,15);
            button.hitTestState= createCircle(0x00ff00,15);
            
            button.addEventListener(MouseEvent.CLICK,handleClick);
            
            addChild(button);
        }
        
        public function createCircle(color:uint,radius:Number):Shape
        {
            var circle:Shape = new Shape();
            circle.graphics.lineStyle(1,0x000000);
            circle.graphics.beginFill(color);
            circle.graphics.drawCircle(0,0,radius);
            circle.graphics.endFill();
            return circle;
            
        }
        private function handleClick(event:MouseEvent):void
        {
            trace("handleClick" + fireString);
            //if(this.parent.parent != null)
//            {
//                var parentObj:Object = this.parent.parent.parent as Object;
//                //parentObj.screens.switchTo(fireString);
//                //Document.screens.switchTo(fireString);
//                
//            }
            //trace("handleClick");
            
//            trace(fireString);
            dispatchEvent(new Event(fireString));
            //trace("event Dispatched");
        }
    }
}