Flex / AIR: absorbieren automatisch unassigned / deaktiviert Tastenkürzel
-
03-07-2019 - |
Frage
Ich habe eine AIR-Anwendung mit einem <mx:HTML>
Komponente, die eine Seite darstellt, die eine HTML/Javascript
basierend WYSIWYG/rich-text editor
enthält. Verschiedene Tastenkombinationen werden für die Formatierung zugewiesen und was haben Sie, aber wenn ich eine Verknüpfung geben, die nicht zugeordnet
( Beispiel: cmd oder [ ctrl auf Windows] + M ),
das Zeichen, als ob keine Zusatztaste eingegeben wurde gedrückt. Dies gilt auch, wenn die Verknüpfung zugeordnet ist, aber sein Menüpunkt ist deaktiviert.
Was ist der beste Weg, zu erkennen, dass ein Modifikator gedrückt wird, aber die Verknüpfung nicht zugeordnet ist und nicht ignoriert werden soll bis zur HTML-Ansicht ohne die Zusatztaste übergeben?
Lösung
Nevermind, ich es herausgefunden. Anscheinend ist das Menüsystem funktioniert, auch wenn Sie die Standardaktion auf dem Keyboard verhindern:
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();
}
});