J'ai créé un KeyPressForwarder
que « en avant » la presse touche comme un clic:
package com.sophware.backend
{
import flash.events.IEventDispatcher;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.ui.Keyboard;
public class KeyPressForwarder
{
public function dispatchAsClickEvent(evt:KeyboardEvent):void
{
if(evt.keyCode == Keyboard.ENTER)
{
var dispatcher:IEventDispatcher = evt.target as IEventDispatcher;
dispatcher.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
}
}
}
Et puis configurer une reliure:
<mx:Button
id="Name"
keyUp="_keyPressForwarder.dispatchAsClickEvent(event)"
click="addOrModifyEntry(event)"
/>
Vous pouvez éliminer la classe et il suffit d'utiliser la fonction le concept est générique. Assurez-vous simplement d'avoir un gestionnaire click
pour gérer l'événement transféré.
Je suppose qu'il n'y a pas d'échappement ajoutant du code à chaque bouton, merci – sergiogx
Je crois qu'il y a un moyen. Vous devriez pouvoir [Monkey Patch] (http://en.wikipedia.org/wiki/Monkey_patch) classer les boutons (ie copier son fichier source dans votre projet, puis le changer) puis ajouter le redirecteur selon le au dessus. Cela signifie que Flex récupèrera votre classe Button avant de la trouver dans la bibliothèque standard. Ce n'est jamais joli, mais peut travailler pour vous. –
Oui, je pensais à étendre le bouton et à trouver/remplacer tous les boutons, mais je préfère votre idée, je vais essayer d'abord. Merci – sergiogx