Why is this Mouse_Move not working well?

When I move the mouse up, down, or left everything seems to track fine. But if I move the mouse right it gets very choppy and some of the movement seems not to be “recorded” to the variables. This is very frustrating. Has anyone ever seen this before?



var lastPointX:Number;
var lastPointY:Number;
var thisPointY:Number;
var thisPointX:Number;
var diffY:Number;
var diffX:Number;
var percentY:Number;
var percentX:Number;
// These variables make it possible to move the 2 indicator lines at author time, automatically setting the limits.
var leftLimit:Number = mcVertLine.x - 57;
var rightLimit:Number = mcVertLine.x + 57;
var topLimit:Number = mcHorizLine.y - 57;
var botLimit:Number = mcHorizLine.y + 57;

mcBeginMessage.btnContinue.addEventListener(MouseEvent.CLICK, handleBegin);

function handleBegin(evt:MouseEvent):void
{
 Mouse.hide();
 mcStick.startDrag(true);
 lastPointX = mouseX;
 lastPointY = mouseY;
 mcBeginMessage.x = -300;
 mcBeginMessage.btnContinue.removeEventListener(MouseEvent.CLICK, handleBegin);
 mcHitArea.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseLocation);
}

function handleMouseLocation(evt:Event):void
{
 thisPointY = mouseY;
 thisPointX = mouseX;
 diffY = thisPointY - lastPointY;
 diffX = (thisPointX - lastPointX);
 percentX = (diffX / thisPointX) * 6;
 percentY = (diffY / thisPointY) * 6;
 mcBackGrnd.rotation += percentX;
 mcBackGrnd.y+=percentY;
 mcFront.rotation += (percentX)*8;
 mcSide.rotation += (percentY)*2;
 //trace(percentY);
 if ((mcHorizLine.y - diffY) > topLimit && (mcHorizLine.y - diffY)< botLimit)
 {
  mcHorizLine.y=mcHorizLine.y-diffY;
  //trace("y = "+mouseY);
 }
 if ((mcVertLine.x - diffX) > leftLimit && (mcVertLine.x - diffX)< rightLimit)
 {
  mcVertLine.x=mcVertLine.x-diffX;
  //trace("x = "+mouseX);
 }
 lastPointY=thisPointY;
 lastPointX=thisPointX;
}