Eventos del teclado en AS2
- 15/01/2008
- 11:35 pm
ActionScript 2 tiene un completo set de herramientas que permiten detectar y responder a los eventos del teclado, esto para dar mayor interactividad a nuestras películas flash. Para manejar los eventos del teclado se tiene la clase Key que se puede utilizar para crear interfaces de usuario que controlen el teclado estándar.
Detectando el Teclado
Lo primero es detectar cuando se ha presionado alguna tecla, para ello existen dos eventos onKeyDown y onKeyUp, para detectar estos eventos es necesario agregar un listener de la siguiente forma:
-
var listKey:Object = new Object();
-
listKey.onKeyDown = function () {
-
// acción al presionar la tecla
-
}
-
listKey.onKeyUp = function () {
-
// acción al soltar la tecla
-
}
-
Key.addListener(listKey);
Códigos del Teclado
Cada tecla tiene asociado un código que nos servirá para poder compararlo y verificar la tecla que se ha presionado, para ello se tienen los siguiente códigos:
- BACKSPACE: código de la tecla de Retroceso
- CAPSLOCK: código de la tecla Bloq Mayús
- CONTROL: código de la tecla Control
- DELETEKEY: código de la tecla Suprimir
- DOWN: código de la tecla de flecha abajo
- END: código de la tecla Fin
- ENTER: código de la tecla Intro
- ESCAPE: código de la tecla Escape
- HOME: código de la tecla Inicio
- INSERT: código de la tecla Insert
- LEFT: código de la tecla de flecha izquierda
- PGDN: código de la tecla AvPág
- PGUP: código de la tecla RePág
- RIGHT: código de la tecla de flecha derecha
- SHIFT: código de la tecla Mayús
- SPACE: código de la tecla Barra espaciadora
- TAB: código de la tecla Tabulador
- UP: código de la tecla de flecha arriba
Luego podemos utilizar el método getCode() que devuelve la tecla que se ha presionado y la podemos comparar con los códigos listados anteriormente. Por ejemplo si deseamos ejecutar una función cuando se presiona la tecla ENTER (por ejemplo enviar un formulario) tendríamos el siguiente código.
-
var listKey:Object = new Object();
-
listKey.onKeyDown = function () {
-
if (Key.getCode() == Key.ENTER) {
-
sendForm();
-
}
-
}
-
Key.addListener(listKey);
Nótese que sendForm es una función definida por el usuario, es decir que nosotros podemos definir y que contenga las acciones que deseamos realizar.
Luego si deseamos por ejemplo controlar la posición de un clip llamado esfera con el teclado podemos utilizar el siguiente código:
-
var step:Number = 5;
-
var listKey:Object = new Object();
-
listKey.onKeyDown = function () {
-
switch (Key.getCode()) {
-
case Key.LEFT:
-
esfera._x += step;
-
break;
-
case Key.UP:
-
esfera._y -= step;
-
break;
-
case Key.RIGHT:
-
esfera._x += step;
-
break;
-
case Key.DOWN:
-
esfera._y += step;
-
break;
-
}
-
}
-
Key.addListener(listKey);
Como pueden ver utilizar los eventos del teclado es sencillo y con un poco de imaginación se pueden obtener resultados muy elaborados.
Posts Relacionados
- Detectores de eventos en AS3
- Capxous: Autocomplete en AJAX
- Precargar archivos en Flash
- Ajax Auto Suggest
- Introducción a jQuery
Total de Comentarios: 1
Hola.
Una duda:
Y si queremos que al pulsar derecha y abajo al mismo tiempo se mueva en diagonal?
Gracias!!
Un saludo.

