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.
Actionscript:
-
-
/**
-
*
-
* 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" tiene que "advertir" a las
-
* montañas de que ha ladrado (que jod##amente abstracto ejemplo!), para que ellas
-
* reproduzcan eco. Con 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. 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.
-
*
-
* Un ejemplo de su implementación sería:
-
*
-
* import com.electroduendes.ejercicios.callback.Perro;
-
*
-
* var mastin:Perro = new Perro();
-
* var miCallback:Object = {func:eco, ambito:this, parms:[]};
-
* function eco() {
-
* trace("guaaaauuu");
-
* }
-
* 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");
-
// TODO: selecciona apply y pulsa f1
-
if (callback != null)
-
// despachamos la función
-
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;
-
}
-
}
-
-
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