electroduendes.com

bitácora de un desarrollador interactivo

electroduendes.com header image 2

Eventos en actionscript 2.0 (2): callback y apply

December 5th, 2005 · 1 Comment

Aquí os dejo la segunda entrega de mis periplo aprendiendo eventos. 100% recomendable para los que todavía no conocéis palabras como EventDispatcher, Delegate, Function.apply() o callback.
En la documentación de la clase, tenéis la explicación del ejemplo.

/**
*
* com.electroduendes.ejercicios.callback.Perro
* @author      Alejandro Sáncez Marcos
* @version		0.1
* @usage       Tutorial-ejemplo de uso de un callback
* 
* 
* Es muy útil el uso de callbacks como manera de brindar a tu función de compor-
* tamientos diferentes en base a parámetros o otras funciones. 
* 
* En este ejemplo, veremos cómo nuestra clase "perro" despierta al amo 
* por un ladrido. 
* La base estriba en el tipo de dato Function, podremos pasar una función y 
* ejecutarla cuando queramos posteriormente con "apply". 
* 
* 
* Para aquellos que optan por la Orientación a Objetos en su código existen 
* maneras más óptimas, como el paquete EventDispatcher, disponible a partir de 
* la versión 7.2. del Flash Player. Si todavía no dominas al máximo tu orientación a objetos, o
* necesitas dotar de comportamiento simple basado en eventos tus clases,
* este es tu ejemplo.
* 
* Implementación:
* 
* import com.electroduendes.ejercicios.callback.Perro;
* 
* var mastin:Perro = new Perro();
* var miCallback:Object = {func:despertar, ambito:this, parms:[]};
* function despertar() {
*	trace("el amo se despierta");
* }
* mastin.setOnEndLadrido(miCallback);
* mastin.ladrar();
* 
*/
class com.electroduendes.ejercicios.callback.Perro {
 
	//un objeto con tres atributos de tipo Function, ambito, Array
	private var callback : Object = null;
 
	/**
	* @usage		ladra
	*/
	public function ladrar () : Void{
		trace ("guau");
		if (callback != null) 
			//  despachamos la función mediante apply
			callback.func.apply (callback.ambito, callback.parms);		
	}
	/**
	*
	* @usage		setter del callback: le enviamos una función para que 
	* 				la ejecute al fin del ladrido
	* @param		callback que contiene una funcion
	*/
	public function setOnEndLadrido (callback : Object) : Void {
		this.callback = callback;
	}
}

Tags: Actionscript 2.0 · Flash · Metodología, arquitectura

1 response so far ↓

  • 1 electroduendes.com » gdispatcher, la navaja suiza de los eventos // Feb 5, 2006 at 10:09 pm

    [...] y enlaces relacionados sobre el tema. Callbacks, la antesala de los listeners.Lo que viene: listeners en Actionscript 3.0 Implementación del uso de listeners con un combo y la clase TransitionManager Un ejemplo de uso de EventDispatcher en actionscript.org   [...]

Leave a Comment