Notification Center para AS3
Supongo que muchos ya conocereis el framework ASAP para flash. Ciertamente es un framework bastante completo, y aunque casi todos usamos los nuestros “propios”, por aquello de “yo lo hice y yo me lo entiendo”, a mi me encanta echar un vistazo a las tripas y ver que caramelitos traen dentro.
En el caso del Notification Center, era algo que ya Sergio Daroca me había comentado, y ahora que lo he visto en profundidad la verdad es que me ha parecido algo muy interesante.
Notification Center es un port a AS3 de la clase “NSNotificationCenter_Class” usada en Cocoa, utilizada en el sistema OSX, portada por Arthur Clemens. Sencillamente, es un Centro de Notificaciones, tal como el nombre indica, y que te permite generar eventos personalizados con sus parámetros.
El funcionamiento de la clase es muy sencillo :
1. Registras tu clase para recibir el tipo de eventos que desees.
2. Emites eventos desde donde necesites
3. Todas las clases suscritas reciben su evento, con los parámetros que pasaras al emitirlo.
Añadir Observer
Para añadirlo, usas :
NotificationCenter.getDefaultCenter().addObserver(this, “doSomething”, “Notification”);
Donde “doSomething” es el método que recibe el evento, y “Notification” es el tipo de evento al que te suscribes.
Ademas de por tipo de evento, puedes suscribirte por tipo de datos, cosa muy interesante :
NotificationCenter.getDefaultCenter().addObserver(this, “doSomething”, null, myTipoDatos);
De este modo, es cuchas todos los eventos, recogiendo siempre que coincida con tu tipo de datos.
Emitiendo Eventos
Haríamos :
NotificationCenter.getDefaultCenter().post(”Notification”, null, “My message”);
Con esto notificariamos a todos los escuchas del evento “Notification” pasandoles el parametro “My message”.
Y la otra opción sería :
var anIdentifier:Object = this;
NotificationCenter.getDefaultCenter().post(null, anIdentifier, “My message”);
Ahora estariamos notificando a todos los escuchas que esperan el objeto “anIdentifier”.
Recogiendo Datos :
Para recibir, en la funcion que le hubieras seteado como escucha :
private function miFuncionEscucha (inNote:Notification) : void {
var notificationName:String = inNote.name;
var notificationObject:Object = inNote.object;
var productData:Object = inNote.data;
}
Y recuperamos simplemente los argumentos pasados y propiedades del evento en sí.
Como veis, es bastante sencillo de implementar, y muy práctico. Lo mismo puede hacerse usando el modelo de eventos nativo, la verdad no lo he mirado en profundidad y no se las diferencias exactas que pueda haber, lo que puedo decir es que esta clase funciona realmente bien y es sencilla y comoda de usar.
La clase en sí esta muy bien documentada, y por cierto, hace uso de otra clase para Logs, la cual os adjunto en el “pack”, simplemente recibe eventos de Log y los emite como traces para ir controlando, es bastante sencilla y tambien esta documentada.
Tengo algunas cosas más sobre ASAP sobre las que ire posteando, es un framework con muchos “caramelitos” dentro desde luego…
Espero os sea de utilidad !!
Descarga :
- POSTS RELACIONADOS / IGUAL TE INTERESA ALGO ... No related posts
DI ALGO !! / AÑADE TU COMENTARIO ...
