Listener клавиатуры на stage в flash9

Иногда бывает удобно использовать listener слушающий события клавиатуры глобально, т.е. во всём приложении (например при создании flash игр). В flash8 с этим не возникает особых проблем, но в flash9 есть баг, в результате которого при удалении со сцены объекта, на котором был фокус, события клавиатуры перестают отлавливаться и сценой в целом, так как фокус в таком случае теряет и stage.

Иногда может помочь простой принудительный возврат фокуса объекту stage:
stage.focus = stage;

Но более гибким и удобным решением может быть использование такого простого слушателя, подсмотренного в письме Николая Артамонова из рассылки сообщества haXe:

Lib.current.addEventListener(Event.ENTER_FRAME, function(e) {
        if (Lib.current.stage.focus.stage == null) {
                Lib.current.stage.focus = Lib.current;
        }
});

Этот сниппет можно просто вставлять в свой haXe проект для flash9 и забывать про описанный выше баг, оставаясь уверенным в том, что в нужный момент stage останется в фокусе и события клавиатуры будет отловлены нашим listener'ом.