Проблема в том, что когда player врезается в wall(Down, Left, Up, Right),то он не останавливается а продолжает проезжать, но как бы рывками, внизу вложен swf файл, подскажите что нужно изменить, что бы код заработал, Заранее благодарен.

Код AS3:
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.DisplayObject;
import net.flashpunk.graphics.Text;
var player:MovieClip;
var playerSpeed:Number = 4;
var movingUp:Boolean = false;
var movingDown:Boolean = false;
var movingLeft:Boolean = false;
var movingRight:Boolean = false;
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
stage.addEventListener(KeyboardEvent.KEY_DOWN, myOnPress);
stage.addEventListener(KeyboardEvent.KEY_UP, myOnRelease);
this.addEventListener(Event.ENTER_FRAME, chekim);
function enterFrameHandler(event:Event):void
{
if ( movingLeft && !movingRight )
{
player.x -= playerSpeed;
}
if ( movingRight && !movingLeft )
{
player.x += playerSpeed;
}
if ( movingUp && !movingDown )
{
player.y -= playerSpeed;
}
if ( movingDown && !movingUp )
{
player.y += playerSpeed;
}
}
function myOnPress(event:KeyboardEvent):void
{
switch( event.keyCode )
{
case Keyboard.UP:
movingUp = true;
movingDown = false;
movingLeft = false;
movingRight = false;
break;
case Keyboard.DOWN:
movingUp = false;
movingDown = true;
movingLeft = false;
movingRight = false;
break;
case Keyboard.LEFT:
movingUp = false;
movingDown = false;
movingLeft = true;
movingRight = false;
break;
case Keyboard.RIGHT:
movingUp = false;
movingDown = false;
movingLeft = false;
movingRight = true;
break;
}
}
function myOnRelease(event:KeyboardEvent):void
{
switch( event.keyCode )
{
case Keyboard.UP:
movingUp = false;
break;
case Keyboard.DOWN:
movingDown = false;
break;
case Keyboard.LEFT:
movingLeft = false;
break;
case Keyboard.RIGHT:
movingRight = false;
break;
}
}
function chekim (e:Event):void
{
if (wallUp.hitTestObject(player as DisplayObject))
{
movingUp = false;
}else if (wallDown.hitTestObject(player as DisplayObject)){
movingDown = false;
} else if (wallRight.hitTestObject(player as DisplayObject)){
movingRight = false;
} else if (wallLeft.hitTestObject(player as DisplayObject)){
movingLeft = false;
}
}