Movimiento de un objeto con el teclado AS3
Saturday, 5. December 2009
En Flash, utilizando actionScript 3, podemos hacer que un movieclip, botón, campo de texto, o cualquier objeto instanciado en el escenario se desplace a través del mismo con el teclado.
Ejemplo de movimiento de objetos con el teclado en Adobe Flash con ActionScript 3. Haz clic sobre la animación y usa las flechas del teclado para moverlo.
Si asociamos un movimiento a una tecla específica, lo más probable es que cuando probemos la animación/aplicación no funcione el movimiento en caso de que presionemos más de una tecla al mismo tiempo. Por esta razón, el movimiento debe ser encargado a funciones que se realicen en asociación con un evento de tiempo (TimerEvent) o de fotogramas (ENTER_FRAME).
Veamos el código que utilizamos y posteriormente lo abordamos paso a paso:
Para que el código funcione debe existir el objeto en el escenario, y tener como nombre de instancia, en este caso ‘objeto’.
var pressArriba:Boolean=false;
var pressAbajo:Boolean=false;
var pressIzquierda:Boolean=false;
var pressDerecha:Boolean=false;
var velocidad:int=2;
stage.addEventListener(KeyboardEvent.KEY_DOWN, presionaTecla);
function presionaTecla(e:KeyboardEvent) {
switch (e.keyCode) {
case 37 :pressIzquierda=true;break;
case 38 :pressArriba=true;break;
case 39 :pressDerecha=true;break;
case 40 :pressAbajo=true;break;
}
}
stage.addEventListener(KeyboardEvent.KEY_UP, liberaTecla);
function liberaTecla(e:KeyboardEvent) {
switch (e.keyCode) {
case 37 :pressIzquierda=false;break;
case 38 :pressArriba=false;break;
case 39 :pressDerecha=false;break;
case 40 :pressAbajo=false;break;
}
}
var tiempo:Timer=new Timer(10,0);
tiempo.start();
tiempo.addEventListener(TimerEvent.TIMER, mover);
function mover(e:TimerEvent) {
if (pressAbajo==true) {
objeto.y+=velocidad;
}
if (pressArriba==true) {
objeto.y-=velocidad;
}
if (pressIzquierda==true) {
objeto.x-=velocidad;
}
if (pressDerecha==true) {
objeto.x+=velocidad;
}
}
Leer el artículo completo…





