J'ai une application Flex avec beaucoup de composants personnalisés, comme des boutons personnalisés, des comboBoxes, etc. J'essaie d'ajouter des raccourcis clavier à l'application flex. J'essaie d'ajouter des raccourcis clavier à l'application flex. Ce faisant, j'ai ajouté un écouteur de touche vers le bas à l'application pour écouter ctrl+shift
combinaison de touches comme ceci :
this.stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown);
puis j'envoie un événement personnalisé que tous mes composants personnalisés écoutent :
private function reportKeyDown(event:KeyboardEvent):void
{
var evtObj:Object = new Object();
evtObj.keyEvent = event;
dispatchEvent(new CustomEvent(CustomEvent.SHORTCUT_KEYS_PRESSED, evtObj, true, false));
}
Dans mon composant de bouton personnalisé, j'ai :
this.addEventListener(CustomEvent.SHORTCUT_KEYS_PRESSED, ShortCutKeysHandler, true);
Donc, si je vais ctrl+shift+W
alors je veux qu'une instance du bouton personnalisé soit cliquée.
Pour une raison quelconque, l'événement n'est jamais déclenché et n'arrive jamais à l'adresse de l'utilisateur. ShortCutKeysHandler
fonction.
Quelqu'un sait-il comment faire ?