Привет всем. Пишу десктопное приложение.
В приложении нужно реализовать кнопку FullScreen. У кнопки есть два состояния - перейти в полноэкранный режим и перейти в нормальный. Тут все просто, все работает:

Код AS3:
btnFullScreen.addEventListener(MouseEvent.CLICK, btnFullScreenHandler);
private function btnFullScreenHandler(e:MouseEvent):void {
if (stage.displayState == StageDisplayState.FULL_SCREEN){
stage.displayState = StageDisplayState.NORMAL;
btnFullScreen.mc.gotoAndStop("s2");
} else {
stage.displayState = StageDisplayState.FULL_SCREEN;
btnFullScreen.mc.gotoAndStop("s1");
}
}
Но есть проблема - по умолчанию из полноэкранного режима можно выходить по нажатию на клавишу "Esc", либо переключать состояния комбинацией "Ctrl + F". Как в данной ситуации менять состояние кнопки FullScreen?
Технически понятно - нужно отлавливать события клавиатуры. Но не всегда срабатывает - через раз. В чем ошибка? Либо есть другие варианты реализовать полноценную кнопку FullScreen?

Код AS3:
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
private function keyDownHandler(e:KeyboardEvent):void {
if (e.keyCode == Keyboard.ESCAPE){
if (stage.displayState == StageDisplayState.FULL_SCREEN){
btnFullScreen.mc.gotoAndStop("s2");
}
};
}