есть шарик с instance name - mc
при клике мышки он летит в сторону курсора и должен остановиться в точке, где был произведен клик.. при клике он летит и постепенно останавливается, но останавливается не совсем в нужной точке, а пролетает немного дальше или не долетает..

Код AS3:
var X:Number = mouseX;
var Y:Number = mouseY;
//Скорость шарика
var mc_speedXTO:Number;
var mc_speedYTO:Number;
//Скорость движения шара
var speed:Number = 10;
//Добавляем ENTER_FRAME , что анимирует движение шара
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouse);
stage.addEventListener(Event.ENTER_FRAME, moveBall);
function mouse(e:Event):void
{
//Вычисляем расстояния по x и y от шара до точки
var distance_posX:Number = mouseX - mc.x;
var distance_posY:Number = mouseY - mc.y;
//Вычисляем расстояние от точки до шара
var dist_pos = Math.sqrt(distance_posX * distance_posX + distance_posY * distance_posY);
//Вычисляем угол между шаром и мышью
var angle:Number = Math.atan2(distance_posY,distance_posX);
var distance_mouseX:Number = mouseX - mc.x;
var distance_mouseY:Number = mouseY - mc.y;
//Вычисляем расстояние от шара до мышки
var dist_mouse = Math.sqrt(distance_mouseX * distance_mouseX + distance_mouseY * distance_mouseY);
mc_speedXTO = Math.cos(angle) * speed * 4;
mc_speedYTO = Math.sin(angle) * speed * 4;
mc.x += mc_speedXTO;
mc.y += mc_speedYTO;
if (dist_mouse > 0)
{
var mc_angle = Math.atan2(distance_mouseY,distance_mouseX);
mc_speedXTO = Math.cos(mc_angle) * speed * 4;
mc_speedYTO = Math.sin(mc_angle) * speed * 4;
}
}
function moveBall(e:Event):void
{
mc.x += mc_speedXTO;
mc.y += mc_speedYTO;
//Уменьшаем скорость
mc_speedXTO *= 0.9;
mc_speedYTO *= 0.9;
}
помогите разобраться в чем ошибка