Flex / AIR: автоматически поглощает неназначенные / отключенные сочетания клавиш

У меня есть приложение AIR с <mx:HTML> компонентом, которое отображает страницу, содержащую HTML/Javascript на основе WYSIWYG/rich-text editor. Для форматирования и того, что у вас есть, назначаются различные сочетания клавиш, но если я наберу сочетание клавиш, которое не назначено
(например, cmd или [ctrl < / kbd> в Windows] + M),
символ вводится, как если бы не была нажата никакая клавиша-модификатор. Это верно даже в том случае, если ярлык назначен, но его пункт меню отключен.

Как лучше всего определить, что модификатор нажат, но ярлык не назначен и его следует игнорировать, а не передавать в представление HTML без клавиши-модификатора?


person eyelidlessness    schedule 14.10.2008    source источник


Ответы (1)


Да ладно, я понял это. Очевидно, система меню работает, даже если вы запретите действие по умолчанию для KeyboardEvent:

public var OperatingSystem:String = !!NativeApplication.supportsDockIcon ?
    'mac' :
    !!NativeApplication.supportsSystemTrayIcon ?
    'win' :
    'other';

stage.addEventListener('keyDown', function(e:KeyboardEvent):void {
    if(e[(OperatingSystem == 'mac' ? 'commandKey' : 'ctrlKey')]) {
        e.preventDefault();
    }
});
person eyelidlessness    schedule 14.10.2008