Pregunta

Tengo una aplicación de AIR con un componente <mx:HTML>, que muestra una página que incluye un HTML/Javascript basado en WYSIWYG/rich-text editor. Se asignan varios métodos abreviados de teclado para formatear y lo que tiene, pero si escribo un método abreviado que no está asignado
( p. Ej. cmd o [ ctrl en Windows] + M ),
el carácter se ingresa como si no se hubiera presionado ninguna tecla modificadora. Esto es incluso cierto si se asigna el acceso directo pero su elemento de menú está deshabilitado.

¿Cuál es la mejor manera de detectar que se presiona un modificador, pero el acceso directo no se asigna y debe ignorarse en lugar de pasar a la vista HTML sin la tecla modificadora?

¿Fue útil?

Solución

No importa, lo descubrí. Aparentemente, el sistema de menús funciona incluso si evita la acción predeterminada en el 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();
    }
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top