Siguiendo los tips de Actionscript 3, aquí les dejo un sencillo ejemplo de como se detectan las pulsaciones de teclas en AS3. Recomiendo leer el tutorial de introducción a Actionscript 3 para algunos conceptos básicos.
La funcion isDown(), que usabamos en AS2, ha dejado de funcionar y ahora tendremos que utilizar la nueva clase flash.events.KeyboardEvent.
El primer paso será crearnos una clase que llamaremos "Teclado.as" y meterla dentro del package (carpeta) "clases"
Código :
package mx.clases { public class Teclado() { } }
Ahora importaremos las clases que vamos a necesitar: la clase KeyboardEvent y la clase Stage.
Código :
package mx.clases { import flash.display.Stage; import flash.events.KeyboardEvent; //------------------------ public class Teclado():void { } }
¿Por qué necesitaremos la clase Stage? Porque necesitaremos añadirle los detectores de eventos (listeners) a un objeto y en este caso se los añadiremos al Stage:
Código :
package mx.clases { import flash.display.Stage; import flash.events.KeyboardEvent; //------------------------ public class Teclado() { public function Teclado(stage:Stage) { stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); } } }
Como podemos comprobar, hemos de pasarle una referencia del stage como parametro al constructor.
Ahora solo queda añadir las funciones a realizar:
Código :
package mx.clases { import flash.display.Stage; import flash.events.KeyboardEvent; //------------------------ public class Teclado() { public function Teclado(stage:Stage) { stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); } //------------------------------------------- private function onKeyDown(tecla:KeyboardEvent):void { trace("pulsé la tecla: "+tecla.keyCode); } private function onKeyUp(tecla:KeyboardEvent):void { trace("solté la tecla: "+tecla.keyCode); } } }
Para utilizar esta clase en nuestro .FLA colocaremos:
Código :
import mx.clases.Teclado; var teclado:Teclado = new Teclado(stage);
PD: Una característica curiosa de la clase KeyboardEvent es que nos permite detectar si estamos pulsando la tecla ctrl o la tecla shift a la hora de pulsar la tecla.
Código :
trace("¿Estoy pulsando la tecla ctrl? "+tecla.ctrlKey); //el resultado será true o false
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por oscart el 03 de Noviembre de 2006
ya sabia yo que no iba a ser tan facil con as3
Por Wanaya el 03 de Noviembre de 2006
Por Freddie el 03 de Noviembre de 2006
Por noctam el 03 de Noviembre de 2006
buen tutorial
Por Rolly el 05 de Noviembre de 2006
creo que en eso mejorará..
Por pepe el 30 de Diciembre de 2006
Se podria hacer algo asi o solo se le puede dar acciones a teclas muy concretas?
Enhorabuena por esta web!!! saludos desde Zamora
Por juan el 12 de Mayo de 2007
Por jose en problemas el 18 de Agosto de 2007
que al darle click capture la pantalla y la envie a un correo??
Por cafam el 11 de Septiembre de 2007
Por Duque de Rivas (lo el 13 de Septiembre de 2007
cafam_blog :
Yo compraría cuadraditos de plástico, les pintaría con marcador indeleble unas letras y las ubicaría según corresponde por usos y costumbres. La parte difícil es grabar los circuitos, pero con un poco de creatividad se puede hacer.
PD: no te olvides de los 3 LEDs arriba a la derecha y del USB.
Por AGCañibano el 29 de Diciembre de 2007
No se si es por mi INGNORANCIA en cuanto Java, ¿ Pero desde cuando una clase se declara con paréntesis como si fuese un constructor ? me peta. CONCLUSIÓN DEBE HABER UNA FORMA MAS SENCILLA Y REUTILIZABLE DE IMPLENTAR EL TECLADO... Y PARA COLMO EN LA VERSION BETA DEL MANUAL DEL FABRICANTE FALTA TODO EL CONTENIDO DE OPP Y YA SE QUE ESTÁ EN LIVEDOCS... no ayuda en nada !!!!
Por Victor el 09 de Enero de 2008
att:Seed
Por yo el 05 de Julio de 2008
Por Kottore el 11 de Diciembre de 2008
function teclas(event:KeyboardEvent)
{
txtTexto.text="oprimiste la tecla número " + event.charCode + " del charCode";
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, teclas);
Por matias el 03 de Enero de 2009
Por Mike Morales el 20 de Marzo de 2009
Por Veronica el 06 de Abril de 2009
Por martin el 28 de Abril de 2009
Por Rafael Esquivel el 04 de Noviembre de 2011
Por peon007 el 27 de Junio de 2013