Well, I had the same problem, so found this thread and the posts gave me the idea, it seems that when you click on any button, movieclip with mouse listener or input text fields, you lose focus in the stage which is the one listening for keyboard events, so, my solution was adding in every button function the line you gave before:

stage.focus=stage;

in my opinion it's not a player or code bug, it's the AS3 logic in which every element, even the stage is an object, so if you use another one, even being inside it, it loses focus, well, hope it helps, worked for me.