corrigée Réponse
Vous pouvez facilement écouter les événements de clavier qui se produisent lorsque le champ de texte se concentre.
Ajoutez simplement un événement KEY_DOWN directement au champ de texte, puis faites ce que vous voulez.
// get key presses only when the textfield is being edited
inputText.addEventListener(KeyboardEvent.KEY_DOWN,handler);
function handler(event:KeyboardEvent){
// if the key is ENTER
if(event.charCode == 13){
// your code here
doSomething();
}
}
Sur une note séparée, textfields envoient également d'autres événements utiles:
- Lorsque modifié par l'utilisateur (si son entrée un champ de texte) - Event.CHANGE
- Lorsque le texte est typée par l'utilisateur (si c'est un textfield d'entrée) - TextEvent.TEXT_INPUT
- Lorsqu'un lien est cliqué (si son texte HTML) - TextEvent.LINK
- Lorsque défilée par l'utilisateur (si son multiligne et le contenu n » t fi t) - Event.SCROLL
précédente Mauvaise réponse:
Je pense que la seule façon de faire réellement ce que vous voulez est un peu complexe.
Fondamentalement, vous ne pouvez obtenir aucun événement du TextField normal qui serait déclenché lorsque la touche Entrée est enfoncée. Vous devez faire le travail autour ...
Une idée serait d'écouter le champ de texte pour les événements de mise au point. Quand il a le focus, vous ajoutez un écouteur à la scène pour les événements du tableau de bord et vérifiez si la touche enfoncée est Entrée, si c'est le cas, sinon passez.
Exemple de code:
inputText.addEventListener(FocusEvent.FOCUS_IN,textInputHandler);
inputText.addEventListener(FocusEvent.FOCUS_OUT,textInputHandlerOut);
function textInputHandler(event:FocusEvent):void {
//our textfield has focus, we want to listen for keyboard events.
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
}
function textInputHandlerOut(event:FocusEvent):void {
//our textfield lost focus, remove our listener.
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
}
function keyDownHandler(e:KeyboardEvent):void{
//a key was pressed, check if it was Enter => charCode 13.
if(e.charCode == 13){
//ok, enter was pressed. Do your thing.
trace("We pressed enter, doSomething")
}
}
J'ai utilisé: inputText.addEventListener (KeyboardEvent.KEY_DOWN, handler); gestionnaire de fonction (événement: KeyboardEvent) { if (event.charCode == 13) { doSomething(); } } Et cela fonctionne. Merci. –
@Jonathan - J'ai édité la réponse pour refléter la vérité. –
S'il vous plaît vérifier vos faits avant de publier de telles absurdités, cette question a plus d'un an, et plus de 4000 personnes ont été trompés en leur faisant croire que de telles choses simples sont difficiles. –