respuesta corregido
Puede escuchar fácilmente para eventos de teclado que se producen cuando el campo de texto se centra.
Simplemente agregue un evento KEY_DOWN directamente al campo de texto y luego haga lo que desee.
// 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();
}
}
En una nota aparte, campos de texto también envían otros eventos útiles:
- Cuando modificado por el usuario (si es un campo de texto de entrada) - Event.CHANGE
- Cuando el texto se escribe por el usuario (si es un campo de texto de entrada) - TextEvent.TEXT_INPUT
- Cuando se hace clic en un enlace (si el texto HTML) - TextEvent.LINK
- Cuando desplaza por el usuario (si es de varias líneas y los contenidos Don' t fi t) - Event.SCROLL
Anterior respuesta incorrecta:
Creo que la única manera de hacer realidad lo que quiere es un poco compleja.
Básicamente, no se puede obtener ningún evento del campo de texto regular que se activará cuando se presione la tecla Entrar. Tienes que trabajar alrededor de ...
Una idea sería escuchar el campo de texto para los eventos de enfoque. Cuando tiene foco, agrega un oyente al escenario para los eventos de teclado y comprueba si la tecla presionada es Intro, si es así active su acción, de lo contrario omita.
Código de ejemplo:
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")
}
}
Utilicé: inputText.addEventListener (KeyboardEvent.KEY_DOWN, controlador); controlador de funciones (evento: KeyboardEvent) { if (event.charCode == 13) { doSomething(); } } Y funciona. Gracias. –
@Jonathan - He editado la respuesta para reflejar la verdad. –
Por favor revise sus datos antes de publicar tales tonterías, esta pregunta tiene más de un año de antigüedad, y más de 4000 personas han sido engañadas haciéndoles creer que cosas tan simples son difíciles. –