Entradas con la etiqueta ‘Eventos’

Hammer.js

Publicado por Iván Gajate el 24 de junio de 2013 en Desarrollo Web, JavaScript | Los comentarios están cerrados.

Interesante librería que he descubierto gracias a q-interactiva 😉
Sirve para detectar los eventos de touch, drag, swipe, etc… *todos* los dispositivos (escritorio, iPad y otras tabletas, móviles…), y parece que funciona muy bien 🙂

http://eightmedia.github.io/hammer.js/

Funciona como plugin de jQuery o de forma independiente y pesa ná y menos 🙂

Emitir eventos personalizados en AS3 (III)

Publicado por Iván Gajate el 27 de noviembre de 2008 en AS3, Flash, Tutoriales | 16 comentarios »

Ya hemos visto cómo construir un evento personalizado en AS3 en el que podamos pasarle parámetros, lo cual nos permite crearnos un evento genérico donde incluiremos todos los parámetros extra que queramos, y así­ reutilizar nuestra clase en distintos proyectos.

Además, funciona como un array asociativo, donde podemos preguntar por cada valor a partir de su nombre de variable, o incluso recorrerlo con un bucle for-in. Muy cómodo.

El evento que queremos emitir con sus parámetros extra:

import EventExtra;

// Emito el evento con todos los parametros que quiera
dispatchEvent(new EventExtra("accionTerminada", {nombre:"Iván", puntuacion:59, registrado:true, telefono:"620 32 54 28", posiciones:[1,2,3,4,5]} ));

La clase EventExtra:

package {

	import flash.events.*;

	// Extiendo la clase Event para que funcione como un evento mas al enviarse y recibirse.
	public class EventExtra extends Event{

		// Variable privada donde almaceno los parametros extra en un objeto
		private var _extra:Object;

		// Recibo los parametros extra en un objeto
		public function EventExtra(nombre:String, extra:Object=null, bubbles:Boolean=false, cancelable:Boolean=false){
			// Inicializo el constructor de Event
			super(nombre, bubbles, cancelable);
			// Si llega el parametro extra, lo almaceno.
			// Y si no, creo un objeto vacio para que no genere un error al intentar acceder a el.
			if(extra){
				_extra = extra;
			}else{
				_extra = new Object();
			}
		}

		// Devuelve un objeto con los parametros extra en formato de objeto
		public function get extra():Object{
			return _extra;
		}
	}
}

Y nuestro detector de eventos:

import EventExtra;

// Escucho si objetoEmisor emite el evento "accionTerminada" y le indico su detector de eventos.
objetoEmisor.addEventListener("accionTerminada", detectorAccionTerminada);

// El detector del evento, recibe un objeto evento de tipo EventExtra
function detectorAccionTerminada(evento:EventExtra):void{
	// Puedo recoger los parametros a traves del objeto evento.extra
	for (var e:String in evento.extra){
		trace(e + " --> " + evento.extra[e]);
	}
}

/* Devuelve el valor de cada elemento del objeto extra:
nombre --> Iván
telefono --> 620 32 54 28
puntuacion --> 59
posiciones --> 1,2,3,4,5
registrado --> true
*/

Emitir eventos personalizados en AS3 (II)

Publicado por Iván Gajate el 22 de noviembre de 2008 en AS3, Flash, Tutoriales | 12 comentarios »

Ya vimos que se pueden emitir eventos personalizados para recogerlos con un listener, no tenemos que limitarnos a los que trae Flash por defecto.

Ahora vamos a dar un paso más. Queremos emitir un evento que diga que se ha terminado una acción, pero además queremos indicar si ha ido bien (true), o ha ido mal (false).

Este es el evento que queremos emitir:

dispatchEvent(new EventExtra("accionTerminada", true));

Creamos un nuevo evento de tipo EventExtra donde le indicamos el nombre del evento que queremos emitir y los parámetros que queramos, que para eso es nuestro evento 🙂

Vamos a ver la clase EventExtra:

package {

	import flash.events.*;

	// Extiendo la clase Event para que funcione como un evento mas al enviarse y recibirse.
	public class EventExtra extends Event{

		public var exito:Boolean;

		public function EventExtra(nombre:String, exito:Boolean=true){
			// Inicializo el constructor de Event
			super(nombre);
			// Guardo el valor de exito en una variable para poder acceder luego a ella.
			this.exito = exito;
		}
	}
}

No tiene nada especial, es un envoltorio de la clase Event pero recibe un parámetro extra que almaceno para luego poder acceder a su valor.

Así es como se recogería nuestro evento, con un listener, como siempre en AS3:

// Escucho si objetoEmisor emite el evento "accionTerminada" y le indico su detector de eventos.
objetoEmisor.addEventListener("accionTerminada", detectorAccionTerminada)

// El detector del evento, recibe un objeto evento de tipo EventExtra
function detectorAccionTerminada(evento:EventExtra):void{
	// Como tengo una referencia al evento, puedo acceder a sus variables publicas (exito).
	trace(evento.exito)
}

Leer el resto de esta entrada

Emitir eventos personalizados en AS3 (I)

Publicado por Iván Gajate el 9 de noviembre de 2008 en AS3, Flash, Tutoriales | 23 comentarios »

Ahora en AS3 es mucho mas fácil emitir un evento personalizado desde un objeto y recogerlo con un listener. Se hace mediante dispatchEvent.

Al igual que cuando queremos recoger el evento de ratón mouseDown lo hacemos así:

import flash.events.MouseEvent;

boton_btn.addEventListener("mouseDown", botonPulsado);

function botonPulsado(evento:MouseEvent):void{
	trace("Boton pulsado!!");
}

también podemos hacer que nuestros objetos emitan eventos para que otros objetos puedan recogerlos con un listener.

En AS3 todos los objetos que hereden de alguna subclase de DisplayObject (todos los de la lista de visualización) pueden emitir eventos, con lo que si nuestra clase extiende de Sprite, que será lo mas normal, pues ya podemos hacerlo.

Para emitir un evento haremos esto:

dispatchEvent(new Event("accionTerminada"));

donde accionTerminada es nuestro evento personalizado. Para recoger este evento usamos un listener:

import flash.events.Event;

emisor.addEventListener("accionTerminada", onAccionTerminada)

function onAccionTerminada(evento:Event):void{
	trace("Accion Terminada");
}

Leer el resto de esta entrada