ну, потому что b2 не надо трогать, вы ведь не хотите, чтоб он сдвигался
Добавлено через 1 минуту
нужно внимательно посмотреть на код внутри

Код AS3:
if (distance < minDist)
{ ... }
и оставить только то, что нужно
Добавлено через 6 минут
и, кстати, вам не нужно два разных метода на KEY_DOWN и KEY_UP
Можно это нагромождение заменить одной функцией

Код AS3:
//сначала добавляем листенеры, ссылающиеся на одну функцию
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownUpHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyDownUpHandler);
//....
//потом обрабатываем
function keyDownUpHandler(event:KeyboardEvent)
{
if(event.keyCode==87)
up = (event.type == KeyboardEvent.KEY_DOWN);
if(event.keyCode==83)
down = (event.type == KeyboardEvent.KEY_DOWN);
if(event.keyCode==65)
left = (event.type == KeyboardEvent.KEY_DOWN);
if(event.keyCode==68)
right = (event.type == KeyboardEvent.KEY_DOWN);
}
Очень рекомендую, если вы работает с кодом, соблюдать аккуратность, красоту и лаконичность. В частности, следить за отступами, называть переменные и функции так, чтоб было понятно, что это. Иначе будете вечно путаться делать много багов.
Эта то жи самая что песать без занкав припинания и пастаяными ашибками ризультат налицо давольна сложна панять что я имею ввиду особена если эта длиные придлажения а если целыи абзацы то вааще атас