Все равно не работает как надо. Может я просто не правильно код добавил?

Код AS3:
...
var bl:ball1 = e.currentTarget as ball1;
var tempSpeedy:Number = bl.speedy;
var tempSpeedx:Number = bl.speedx;
if(up)
{
bl.speedy -= accelerator;
}
if(left)
{
bl.speedx -= accelerator;
}
if(down)
{
bl.speedy += accelerator;
}
if(right)
{
bl.speedx += accelerator;
}
...
if (distance < minDist)
{
midpointX = (bl.x+b2.x)/2;
midpointY = (bl.y+b2.y)/2;
minDist = minDist - b2.width/2; //50
b2.x = (midpointX+normalX*minDist);
b2.y = (midpointY+normalY*minDist);
b1.speedx = tempSpeedx;
b1.speedy = tempSpeedy;
}