Listeners:

Páginas: 21 (5082 palabras) Publicado: 7 de noviembre de 2011
LISTENERS:

Otra de las novedades en Flash MX son los Listeners aplicados a algunos objetos que esperan algun evento. Los listeners son como acciones que se adhieren aun objeto y que se meten dentro de las respuestas a un evento determinado...en español: le decimos a flash que ante un evento predeterminado (key down, mouse up, etc) ocurra algo. Los Listeners son de aplicación global y esa esuna ventaja. Por ejemplo veamos el código de mover un movie clip. Este ejemplo es muy imperfecto pero ilustra la idea: Tenemos un clip al que queremos mover con las teclas de dirección del teclado: Tomando en cuenta que el movie clip se llama "clip" hacemos lo siguiente: La plataforma Swing se basa primordialmente para el manejo de eventos en el concepto de escucha o Listener; la teoría generalestablece que existe un objeto al que llamaremos disparador que realiza alguna acción sobre otro objeto reactivo. El objeto entonces informa a varios Listener de que algo ha ocurrido en el disparador. Entonces cada uno de los listeners puede realizar alguna acción en base al evento que ocurrió. La metáfora que utilizaremos para comprender el concepto es mas o menos el siguiente: Imagina que tenemosun sistema que mide la temperatura del ambiente, este sistema puede conectarse con multiples sistemas independientes; imaginemos entonces que podemos conectar un aparato que pite cada que la temperatura rebase cierto limite, además podemos conectar otro aparato que actualize la temperatura en un sitio Web cada que esta cambie, y podemos conectar más aparatos que realizen funciones diferentes,siempre y cuando sean capaces de saber cuando la temperatura cambia. Entre los componentes Swing hay una amplia gama de Listener's que se implementan como Interfaces, si queremos que determinada clase responda a los eventos de un objeto es necesario que este implemente la interface Listener adecuada y que se registre con el objeto que genera los reportes de evento. El ejemplo más sencillo es el de losbotones comunes y la interfaz ActionListener.

//Creamos una funcion para los movimientos que queremos
function mover(elclip) {
this.elclip = elclip;
pasos=5
//efecto de rotacion del clip
elclip._rotation+=pasos
//usando el nuevo Swich (que es una forma de condicional)
//verificamos si se cumplen (TRUE) los siguientes
//casos:
switch (true) {
//cada caso verifica el apretado de unatecla
//direccional especifica
case (Key.isDown(39)) :
elclip._x += pasos;
break;
case (Key.isDown(38)) :
elclip._y -= pasos;
break;
case (Key.isDown(40)) :
elclip._y += pasos;
break
case (Key.isDown(37)) :
elclip._x -= pasos;
break
}
}
//Ahora vamos a crear un clip "motor" virtual que nos permita ejecutar estas acciones al
//apretar una tecla (sin importar cual sea)_root.createEmptyMovieClip("motor", 100);
motor.onKeyDown = function() {
_root.mover(_root.clip);
}
//para que funcione el llamado a la funcion debemos meter el clip al Listener del objeto KEY.
Key.addListener(motor);
JButton boton = new JButton("El boton");

//ActionListener es la clase encargada de escuchar eventos de acción
ActionListener al = new ActionListener() {
public voidactionPerformed(ActionEvent ae) {
System.out.println("Se ha hecho click en el botón");
}
}

boton.addActionListener(al);

//Registramos el nuevo objeto como escucha del botón
JButton boton2 = new JButton("Otro boton");
//Podemos agregar un Listener a varios elementos
boton2.addActionListener(al);
//E igualmente podemos registrar mas de un listener por objetoboton.addActionListener(otro_listener);

//Borramos el registro de escucha cuando deja de interesarnos
boton.removeActionListener(al);

Algunos elementos pueden llegar a tener multiples interfaces para utilizar Listeners, como el caso de los JFrame's, que permiten recibir WindowListener, FrameListener, PropertyChangeListener, MouseListener, MouseMotionListener entre otros. En la documentación de Java...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS