Is this Possible?



map:PathMap =  new PathMap();

btnShowPath.addEventListener(MouseEvent.CLICK, onClick)

function onClick (e:MouseEvent)
{
    switch (btnShowPath.label)     {
           case "Path One":
                    map.showPath(tlPath1) //pass the value into the PathMap class so that the TimelineMax tlPath1 will play
                       break;

                case "Path Two":
                    map.showPath(tlPath2) // pass the value into the PathMap class so that the TimelineMax tlPath2 will play
                       break;

             default:
             break;
        }
}


package {
    import flash.display.MovieClip;
    import com.greensock.*;
    import flash.display.Shape;
    import fl.transitions.TransitionManager;
    import flash.events.MouseEvent;
    import flash.events.Event;
    


    public class PathMap extends MovieClip 
    {
        private var line:Shape;


        private var tlPath1:TimelineMax;
        private var tlPath2:TimelineMax;
    
        public function PathMap()
        {
                line = new Shape();
                addChild(line);


                mc1.x = p1.x;
                mc1.y = p1.y;
    
                tlPath1= new TimelineMax( { paused:true, onUpdate:drawLine } );
                tlPath1.appendMultiple([
                TweenLite.to(mc1, 1, {x:p2.x, y:p2.y}),
                TweenLite.to(mc1, 1, {x:p3.x, y:p3.y}),
                TweenLite.to(mc1, 1, {x:p4.x, y:p4.y}),
                TweenLite.to(mc1, 1, {x:p5.x, y:p5.y})
                ], 0, TweenAlign.SEQUENCE);

                               tlPath2= new TimelineMax( { paused:true, onUpdate:drawLine } );
                tlPath2.appendMultiple([
                TweenLite.to(mc1, 1, {x:p2.x, y:p2.y}),
                TweenLite.to(mc1, 1, {x:p3.x, y:p3.y}),
                TweenLite.to(mc1, 1, {x:p6.x, y:p6.y}),
                TweenLite.to(mc1, 1, {x:p7\.x, y:p7.y})
                ], 0, TweenAlign.SEQUENCE);

                            function drawLine():void
                {
                    line.graphics.lineTo(mc1.x, mc1.y);
                }

                 }

                 private function clearLines():void
        {
            line.graphics.clear();
            //start new line at first point
            line.graphics.lineStyle(5, 0xFF0000, 1);
            line.graphics.moveTo(p1.x, p1.y)    
        }

                public function showPath(tl:String):void
                {
                     clearLines()
                     tl.restart() // Not Working ERROR..
               } 

I know the Error. the showPath function has the parameter tl that will tell which TimelineMax will play, but it is a String… he can’t have the function of restart because restart() is a function of TimelineMax…

but when I change the function of showPath into

public function showPath():void
{
clearLines();
tlPath1.restart(); // this will work, but only tlPath1 will play
}

and I will change the case

switch (btnShowPath.label) {
case “Path One”:
map.showPath()
break;

            case "Path Two":
                   map.showPath() // only tlPath1 will play.
                   break;

         default:
         break;
    }

any idea how to solve this problem??