Advanced tooltip with lineto

Hi everybody, this place has been an awesome resource for me, but i need some lateral thinking help(well i think so)
I may be massively over complicating this so feel free to tell me any easier ways…here goes.

I have a usual tool tip with follow mouse and inertia etc. i am using bit101 physics engine and have created a bounding box to hold two floating particles inside, these want to head towards the mouse. A 3rd mc is also following the mouse and i am using lineto to join them up to create a triangle, ie the point on the tooltip. There is alot of tweaking but my problem is offsetting the centre point of the main movie clip in relation to where it is on the stage in a smoother transition, at the moment if it is top left offset the mc accordingly but it jumps. i was thinking something along the lines of using the width of the mc and deviding it by the distance of the mouse curser?

var radiance:Number = 180/Math.PI;

var speed:Number = 5;
var offset=0;


this.onEnterFrame=function(){
    maxSpeed = 3;
    line1.springToMouse(true,0.08);
    line1.setBounds(boundsMc.bounds2.getBounds(this));
    line2.springToMouse(true,0.08);
    line2.setBounds(boundsMc.bounds2.getBounds(this));
    drawLine(line1,line1,mouseMc);
    
    xdist = Math.round(_root._xmouse - boundsMc._x);
    ydist = Math.round(_root._ymouse - boundsMc._y);
    distancefromthis = Math.round(Math.sqrt((xdist*xdist) + (ydist*ydist)));
    
    trace("x is "+boundsMc._x);
    trace("stage width is "+Stage.width);
    if(boundsMc._x >= Stage.width/2) {
       trace("right ");
       boundsMc.bounds2._x= (900-distancefromthis)-1;
       this.boundsMc.bounds2._x = -this.boundsMc._width/2;
       this.boundsMc.boundsback._x = -this.boundsMc.boundsback._width/2;
       if(boundsMc._y >= Stage.height/2) {
           trace("bottom ");
           this.boundsMc.bounds2._y = -this.boundsMc._height/2;
               this.boundsMc.boundsback._y = -this.boundsMc.boundsback._height/2;
       }    else{
               trace("Top ");
              this.boundsMc.bounds2._y = this.boundsMc._height/2;
               this.boundsMc.boundsback._y = this.boundsMc.boundsback._height/2;
            }
           
       }
     else{
           trace("left ");
           this.boundsMc.bounds2._x = this.boundsMc._width/2;
           this.boundsMc.boundsback._x = +this.boundsMc.boundsback._width/2;
       trace(this.boundsMc._width);
            if(boundsMc._y >= Stage.height/2) {
           trace("bottom ");
           this.boundsMc.bounds2._y = -this.boundsMc._height/2;
               this.boundsMc.boundsback._y = -this.boundsMc.boundsback._height/2;
       }    else{
               trace("Top ");
              this.boundsMc.bounds2._y = this.boundsMc._height/2;
               this.boundsMc.boundsback._y = this.boundsMc.boundsback._height/2;
            }
       }
    //calculate the distance between balls////////
    //////////////////////////////////////////////////////
        myRadians = Math.atan2(_root._ymouse-this.mouseMc._y, _root._xmouse-this.mouseMc._x);
    // Calculates the mouse angle in radians
    myDegrees = Math.round((myRadians*180/Math.PI));

    var yChange = Math.round(_root._ymouse-this.mouseMc._y+offset);
    var xChange = Math.round(_root._xmouse-this.mouseMc._x+offset);
    var boundryyChange = Math.round(_root._ymouse-this.boundsMc._y+offset);
    var boundryxChange = Math.round(_root._xmouse-this.boundsMc._x+offset);
    // Calculates the distance between the movie clip and the mouse
    var yMove = Math.round(yChange/5);
    var xMove = Math.round(xChange/5);
    var triyMove = Math.round(boundryyChange/10);
    var trixMove = Math.round(boundryxChange/10);

    this.line1._rotation = myDegrees+90;
    this.line2._rotation = myDegrees+90;
    this.mouseMc._y += yMove;
    this.mouseMc._x += xMove;
    this.boundsMc._y += triyMove;
    this.boundsMc._x += trixMove;
    

    }

function drawLine(target_mc:MovieClip, secondtarget:MovieClip,thirdtarget:MovieClip){
    //take two MCs as parameters
    this.createEmptyMovieClip("line_mc", 5);//create one MC
    line_mc.beginFill(0xFFFFFF);
    line_mc.lineStyle(1,0xFFFFFF,100);//make it a line
    //start drawing fron the first MC coordinate
    line_mc.moveTo(target_mc._x+target_mc._width/2,target_mc._y+target_mc._width/2);
    //end drawing to the second MC coordinates
    line_mc.lineTo(secondtarget._x+secondtarget._width/2,secondtarget._y+secondtarget._width/2+10);
    line_mc.lineTo(thirdtarget._x+thirdtarget._width/2,thirdtarget._y+thirdtarget._height/2-10);
    line_mc.endFill();
    }