Well, here's the culprit:
ActionScript Code:
function levelCheck(event:Event):void{
if (currentFrame < 5){
currentLevel = currentFrame;
prevLevel = currentFrame - 1;
oneTime();
}
}
function oneTime():void{
if (currentLevel > prevLevel){
positionReset();
prevLevel += 1
}
}
Since the currenFrame is always less than 5, it always does the currentLevel = currentFrame and then prevLevel = currentFrame - 1 operations.
Then goes on to check oneTime.
Guess what? prevLevel would ALWAYS be less than currentLevel because of the above 2 operations, so it just resets your character's position every single time infinitely.
I'm not too sure what you'd like to do here, so I'd leave the fixing to you. But the game works fine if you take out the listener and those two functions, then proceed as usual, reach the goal, and the win screen comes up.
Also, try to use multiple booleans so you can recognize multiple key presses at the same time instead of just one keyCode at a time (1 key press at a time).
...I think I might well write a tutorial on that because there has been a fair amount of people asking about how to recognize more than 2 key presses at the same time.