AS3 - Tween on mouse event

If the code looks familiar to anyone, some of it is excerpted from a post by devonair. All it does is tween the x and y positions of a circle and textfield. I’ve tinkered with it a bit by putting the tween functions in a separate Tweener class and made it accept whatever display object is passed to it. For demonstration purposes, I have it set up so that the tweens occur as soon as the circle and textfield are created. The problem is that I would like the tweens to occur only when they are clicked on. I don’t know how tp do this. How do I write _circle.addEventListener(MouseEvent.MOUSE_DOWN,…) and _text.addEventListener(MouseEvent.MOUSE_DOWN, tweenerIt) so that they are the triggers?

It must be very simple, but I just don’t get it. Could someone please explain?


package
{
 import mx.effects.*;
 import flash.display.*;
 import flash.events.*;
 import mx.effects.easing.*;
 import flash.text.TextField;
 import com.Tweener;
 
 public class TweenTest extends Sprite {
 
  private var _circle:Sprite;
  private var _text:TextField;
 
  function TweenTest() {
   stage.frameRate = 31;
   init();
  }
 
  private function init():void {
   _circle = makeCircle();
   _text = makeTextField();
   var myTween:Tweener = new Tweener(_text, 40, 300, 150, 100, 4000);
   var myTween2:Tweener = new Tweener(_circle, 0, 60, 300, 200, 8000);
   // don't know what to put here...
   //_circle.addEventListener(MouseEvent.MOUSE_DOWN, tweenerIt);
   //_text.addEventListener(MouseEvent.MOUSE_DOWN, tweenerIt);
  }
  
  private function tweenerIt():void {
// don't know what to put here
  }
  
  private function makeCircle():Sprite {
   var s:Sprite = new Sprite();
   s.graphics.beginFill(0x660000);
   s.graphics.drawCircle(20, 20, 20);
   addChild(s);
   return s;
  }
  
  private function makeTextField():TextField {
   var t:TextField = new TextField();
   t = new TextField();
   t.text = "Hello";
   t.x = 20;
   t.y = 60;
   addChild(t);
   return t;
  }
 }
}


package com
{
    import mx.effects.*;
     import flash.display.*;
     import flash.events.*;
     import mx.effects.easing.*;
 
    public class Tweener extends Sprite {
        
        private var _target:DisplayObject;
        private var _target_dest_x:Number;
        private var _target_dest_y:Number;
        private var _target_start_x:Number;
        private var _target_start_y:Number;
        private var _duration:Number;
        
        public function Tweener(target:DisplayObject, target_start_x:Number, target_start_y:Number, target_dest_x:Number, target_dest_y:Number, duration:Number) {
            _target = target;
            _target_dest_x = target_dest_x;
            _target_dest_y = target_dest_y;
            _target_start_x = target_start_x;
            _target_start_y = target_start_y;
            _duration = duration;
            tweenMe();
        }
        private function updateTween(vals:Array):void {
               _target.x = vals[0];
              _target.y = vals[1];
          }
 
          private function endTween(vals:Array):void {
               trace ("ending coordinates: " + vals);
          }
          
          private function tweenMe(/*e:Event*/):void {
               var myTween:Tween = new Tween(_target, [_target_start_x, _target_start_y], [_target_dest_x, _target_dest_y], _duration, 31);
               myTween.easingFunction = Elastic.easeOut;
               myTween.setTweenHandlers(updateTween, endTween);
        
        }
    }
}

Fingers