onMotionFinished for a tween in a class

I have a class, in the class there is a tween. i want to trigger a couple of events when the the tween starts, and also when it finishes. but both events don’t seem to trigger, can anyone tell me why?

Version 1:


/** 
    Load Sub Stage class 
    author: Ahmed I. Masri 
    version: 1.1 
    modified: 08/11/2008 
    copyright: Ahmed I. Masri 

    This code defines a custom class that loads the correct sub movie. 
*/

// Import Built-In Classes
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;

// Class to Load SubStages
class LoadSubStage {

    // Variable Definitions
    var Container:MovieClip;
    var StageLoader:MovieClipLoader;
    var Listener:Object;
    var Preloader:MovieClip;
    
    // Constructor Function to Select SubStage and prepare Stage
    public function LoadSubStage(linkToFile:String) {
        if (linkToFile != "intro_stage.swf") return;
        LIntroStage(linkToFile);
    }
    
    // Constructor Function to PreLoad and present Intro SubStage
    private function LIntroStage(linkToFile):Void {
        // Variable definitions 
        StageLoader = new MovieClipLoader();
        Listener = new Object();
        StageLoader.addListener(Listener);

        // Empty Movie Clip to place Intro SubStage 
        Container = _root.createEmptyMovieClip("MC_emptyHolder", _root.getNextHighestDepth());
        Container._x = 0;
        Container._y = 55;

        // Function to handle (pre)loading
        Listener.onLoadStart = Delegate.create(this, onLoadStart);
        Listener.onLoadProgress = Delegate.create(this, onLoadProgress);
        Listener.onLoadInit = Delegate.create(this, onLoadInit);
        
        Preloader = _root.attachMovie("MC_stageLoader", "MC_stageLoader" , _root.getNextHighestDepth(), {_x:400, _y:261.5});
        Preloader.MC_loadingProgressBar._width = 0;
        Preloader.txt_PercentLoaded.text = "00";
        
        // Loading of SubStage
        StageLoader.loadClip(linkToFile, Container);
    }
    
    // Function to handle start of (pre)loading
    private function onLoadStart() {
        Container._visible = false;
    }
    
    // Function to handle progress of (pre)loading
    private function onLoadProgress(mc:MovieClip, l:Number, t:Number):Void {
        Preloader.MC_loadingProgressBar._width = (l / t) * (Stage.width * 1.2);
        Preloader.txt_PercentLoaded.text = Math.round((l / t) * 100);
    }
    
    // Function to handle completion of (pre)loading
    private function onLoadInit():Void {
        // Variable definition
        _root.tweenListener = new Object();
        var tween_handler:Tween = new Tween();
        tween_handler.addListener(_root.tweenListener);
        
        // Function to handle (pre)loading
        _root.tweenListener.onMotionStarted = Delegate.create(this, onMotionStarted);
        _root.tweenListener.onMotionFinished = Delegate.create(this, onMotionFinished);
        
        // Fade out Preloader;
        tween_handler = new Tween(Preloader, "_alpha", Strong.easeOut, 100, 0, 3, true);
    }
    
    // Move Orange bars
    private function onMotionStarted():Void {
        // Variable Definitions
        var middleOrangeBarY:Number = _root.MC_headerBackground.MC_middleOrangeBar._y;
        var bottomOrangeBarY:Number = _root.MC_headerBackground.MC_bottomOrangeBar._y;

        var tween2:Tween = new Tween(_root.MC_headerBackground.MC_bottomOrangeBar, "_y", Strong.easeOut, bottomOrangeBarY, 619, 3, true);
        var tween3:Tween = new Tween(_root.MC_headerBackground.MC_middleOrangeBar, "_y", Strong.easeIn, middleOrangeBarY, -3.5, 3, true);
    }
    
    // Remove invisible Preloader and show SubStage
    private function onMotionFinished():Void {
        Preloader.removeMovieClip();
        
        // Show SubStage (turn to fade-in)
        Container._visible = true;
    };
}

Version 2:


    /**
        Load Sub Stage class
        author: Ahmed I. Masri
        version: 1.1
        modified: 08/11/2008
        copyright: Ahmed I. Masri

        This code defines a custom class that loads the correct sub movie.
    */

    // Import Built-In Classes
    import mx.utils.Delegate;
    import mx.transitions.Tween;
    import mx.transitions.easing.*;

    // Class to Load SubStages
    class LoadSubStage {

       // Variable Definitions
       var Container:MovieClip;
       var StageLoader:MovieClipLoader;
       var Listener:Object;
       var Preloader:MovieClip;
       
       // Constructor Function to Select SubStage and prepare Stage
       public function LoadSubStage(linkToFile:String) {
          if (linkToFile != "intro_stage.swf") return;
          LIntroStage(linkToFile);
       }
       
       // Constructor Function to PreLoad and present Intro SubStage
       private function LIntroStage(linkToFile):Void {
          // Variable definitions
          StageLoader = new MovieClipLoader();
          Listener = new Object();
          StageLoader.addListener(Listener);

          // Empty Movie Clip to place Intro SubStage
          Container = _root.createEmptyMovieClip("MC_emptyHolder", _root.getNextHighestDepth());
          Container._x = 0;
          Container._y = 55;

          // Function to handle (pre)loading
          Listener.onLoadStart = Delegate.create(this, onLoadStart);
          Listener.onLoadProgress = Delegate.create(this, onLoadProgress);
          Listener.onLoadInit = Delegate.create(this, onLoadInit);
          
          Preloader = _root.attachMovie("MC_stageLoader", "MC_stageLoader" , _root.getNextHighestDepth(), {_x:400, _y:261.5});
          Preloader.MC_loadingProgressBar._width = 0;
          Preloader.txt_PercentLoaded.text = "00";
          
          // Loading of SubStage
          StageLoader.loadClip(linkToFile, Container);
       }
       
       // Function to handle start of (pre)loading
       private function onLoadStart() {
          Container._visible = false;
       }
       
       // Function to handle progress of (pre)loading
       private function onLoadProgress(mc:MovieClip, l:Number, t:Number):Void {
          Preloader.MC_loadingProgressBar._width = (l / t) * (Stage.width * 1.2);
          Preloader.txt_PercentLoaded.text = Math.round((l / t) * 100);
       }
       
       // Function to handle completion of (pre)loading
       private function onLoadInit():Void {
          // Load complete animation
          var middleOrangeBarY:Number = _root.MC_headerBackground.MC_middleOrangeBar._y;
          var bottomOrangeBarY:Number = _root.MC_headerBackground.MC_bottomOrangeBar._y;
          var tween_handler:Tween = new Tween(_root.MC_headerBackground.MC_middleOrangeBar, "_y", Strong.easeIn, middleOrangeBarY, -3.5, 3, true);
          
          // Move Orange bars to position
          tween_handler.onMotionStarted = function() {
             var tween2:Tween = new Tween(_root.MC_headerBackground.MC_bottomOrangeBar, "_y", Strong.easeOut, bottomOrangeBarY, 619, 3, true);
             var tween3:Tween = new Tween(Preloader, "_alpha", Strong.easeOut, 100, 0, 3, true);
          }
          
          // Remove invisible Preloader and show SubStage
          tween_handler.onMotionFinished = function() {
             Preloader.removeMovieClip();
             
             // Show SubStage (turn to fade-in)
             Container._visible = true;
          };
       }
    }