Hello,
I have a cart graphic, which has wheels in its mid-section. Please see my example so far, which works correctly:
http://www.avtutorials.com/temp/test...rotate_5a.html

I need to push the cart by its handle, so that it rotates along the wheels at the midsection -- to do so, drag the blue "target," and the cart will follow or push appropriately.

My problem is this: the cart graphic is currently centered over its registration point in its Movie Clip container (x= -61.5, y= -100.5) -- that's the only way I've been able to get this to work. However, I need to put the cart graphic at the 0,0 point. By positioning the graphic at 0,0 in its Movie Clip, this "offsets" it, and my math doesn't work.

I cannot seem to write the math properly to adjust for this "offset."

Below is my code. Could anyone help determine what I need to change in my code, if I am to have the graphic positioned at 0,0 in its Movie Clip instead of being centered on the registration point?

Code:
towTarget.addEventListener(MouseEvent.MOUSE_DOWN, startMove);
towTarget.addEventListener(MouseEvent.MOUSE_UP, stopMove);
towTarget.addEventListener(MouseEvent.RELEASE_OUTSIDE, stopMove);

var cartHeight:Number = cart.height;

var myAtan2:Number;
var movementInProgress:Boolean = false;

function startMove(evt:MouseEvent):void {
	movementInProgress = true;
	evt.target.startDrag();
		
	stage.addEventListener(Event.ENTER_FRAME, checkMouse);
}

function stopMove(evt:MouseEvent):void {
	movementInProgress = false;
	stopDrag();
	
	myAtan2 = Math.atan2(towTarget.y - cart.y, towTarget.x - cart.x);
	cart.x = towTarget.x - Math.cos(myAtan2) * (cartHeight/2);
	cart.y = towTarget.y - Math.sin(myAtan2) * (cartHeight/2);
	
	removeEventListener(MouseEvent.MOUSE_MOVE, checkMouse);
}

function checkMouse(evt:Event ):void {
	if (movementInProgress == true) {
		myAtan2 = Math.atan2(towTarget.y - cart.y, towTarget.x - cart.x);
		cart.x = towTarget.x - Math.cos(myAtan2) * (cartHeight/2);
		cart.y = towTarget.y - Math.sin(myAtan2) * (cartHeight/2);
		
		cart.rotation = (myAtan2 * 180 / Math.PI) + 90;
	}
}