Well, what you would want to do is have a "canMove" variable set to true at first. then everytime you have a key press event thing, have it test if its true and if it is, move the MC and set the variable to false.
then when they key is up it sets it back to true.
I whipped up this little example, its in AS3 but you should be able to see what i mean.
var canMove:Boolean=true;
var moveDist:int=10;
stage.addEventListener(KeyboardEvent.KEY_DOWN, checkDown);
stage.addEventListener(KeyboardEvent.KEY_UP, checkUp);
function checkDown(event:KeyboardEvent):void {
if (event.keyCode==37) {
if (canMove) {
canMove=false;
mcChar.x-=moveDist;
}
}
if (event.keyCode==38) {
if (canMove) {
canMove=false;
mcChar.y-=moveDist;
}
}
if (event.keyCode==39) {
if (canMove) {
canMove=false;
mcChar.x+=moveDist;
}
}
if (event.keyCode==40) {
if (canMove) {
canMove=false;
mcChar.y+=moveDist;
}
}
}
function checkUp(event:KeyboardEvent):void {
canMove=true;
}