Poprawione Odpowiedź
można łatwo słuchać zdarzeń klawiaturowych występujących podczas textfield jest skoncentrowany.
Wystarczy dodać wydarzenie KEY_DOWN bezpośrednio do pola tekstowego, a następnie robić, co chcesz.
// 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();
}
}
Na odrębnej notatce Pola tekstowe również wysłać inne użyteczne wydarzenia:
- Kiedy modyfikowany przez użytkownika (Jeśli jego textField wejście) - Event.CHANGE
- Kiedy tekst wpisany przez użytkownik (jeśli jego textfield wejście) - TextEvent.TEXT_INPUT
- po kliknięciu łącza (jeśli jej tekst HTML) - TextEvent.LINK
- Kiedy przewijane przez użytkownika (jeśli jego treść multiline i don” t fi t) - Event.SCROLL
Poprzedni Błędna odpowiedź:
myślę, że jedynym sposobem, aby rzeczywiście zrobić to, co chcesz, jest nieco skomplikowane.
Zasadniczo nie można uzyskać żadnego zdarzenia ze zwykłego pola TextField, które zostanie uruchomione po naciśnięciu klawisza Enter. Musisz pracować około ...
Jednym z pomysłów byłoby słuchanie pola tekstowego w przypadku fokusowych wydarzeń. Po ustawieniu ostrości dodajesz słuchacza na scenę dla zdarzeń na płycie głównej i sprawdzasz, czy naciśnięty klawisz to Enter, jeśli tak, uruchom akcję, w przeciwnym razie pomiń.
Przykładowy kod:
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")
}
}
Użyłem: inputText.addEventListener (KeyboardEvent.KEY_DOWN, handler); funkcja obsługi (event: KeyboardEvent) { if (event.charCode == 13) { doSomething(); } } I działa. Dzięki. –
@ Jonathan - Edytowałem odpowiedź, aby odzwierciedlić prawdę. –
Proszę sprawdzić swoje fakty przed publikacją takich bzdur, to pytanie ma ponad rok, a ponad 4000 osób zostało wprowadzonych w błąd, wierząc, że takie proste rzeczy są trudne. –