Comunidad de diseño web y desarrollo en internet online

AsBroadcaster dentro de una clase.

Citar            
MensajeEscrito el 02 Abr 2006 02:08 am
hola gente,
estoy un poco atascadillo...veamos si alguien me puede tirar un cable... :?

situacion:
tengo una clase que gestiona secuencias de reproduccion de funciones. (class SecuenceManager)
se pueden crear multiples instancias de clase y estas han existir simultaneamente.

ahora quiero:
cada instancia ha de poder reaccionar de manera independiente en determinados momentos/eventos de la secuencia que ejecuta.

aproximacion:
lo que necesito es implementar AsBroadcaster dentro de la clase.
Esto me permitiria registrar a las instancias de clase para recibir mensajes de notificación de mis eventos, del tipo onSecuenceDone (es un evento que defino al terminar la ejecucion de la secuencia, doh...)

digamos:

Código :

var instancia:SecuenceManager= new SecuenceManager();
...//se define la secuencia a ejecutar
instancia.executeSecuence();//metodo que inicia la ejecuacion 
instancia.onSecuenceDone=function(){trace("secuencia terminada")}


Alguna idea de como implementar el AsBradcaster dentro de la clase?!

gracias de antemano,
goliat

Por goliatone

66 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Abr 2006 04:36 am
Puedes usar los EventsListeners algo asi:

Código :

import mx.events.EventDispatcher;
 [Event("onDone")]
class eventsManager
{
   private var dispatchEvent : Function;
   public var addEventListener : Function
   function eventsManager ()
   {
      EventDispatcher.initialize (this);
   }
   public function doSomething ()
   {
      dispatchEvent ( 
      {
         type : "onDone", param1 : "1", param2 : "2"
      })
   }
   public function toString () : String
   {
      return "[Objet EventsManager]";
   }
}


en tu .Fla

Código :

import eventsManager;
var a : eventsManager = new eventsManager ();
var b : eventsManager = new eventsManager ();
a.addEventListener ("onDone", onDone1);
b.addEventListener ("onDone", onDone2);
function onDone1 (obj : Object)
{
   trace ("::::onDone1::::");
   for (var i in obj)
   {
      trace ('::: key: ' + i + ', value: ' + obj [i]);
   }
}
function onDone2 (obj : Object)
{
   trace ("::::onDone2::::");
   for (var i in obj)
   {
      trace ('::: key: ' + i + ', value: ' + obj [i]);
   }
}
a.doSomething ();
b.doSomething ();


El resultado de esto es algo asi

Código :

::::onDone1::::
::: key: target, value: [Objet EventsManager]
::: key: type, value: onDone
::: key: param1, value: 1
::: key: param2, value: 2
::::onDone2::::
::: key: target, value: [Objet EventsManager]
::: key: type, value: onDone
::: key: param1, value: 1
::: key: param2, value: 2

Por Tmeister

260 de clabLevel

2 tutoriales

 

firefox
Citar            
MensajeEscrito el 02 Abr 2006 05:25 pm
ok, gracias T por la respuesta...veamos, el problema que tengo es el scope, a la hora de referenciar objectos, receptores y tal... una pregunta, si quisieras añadir los obj. que escuchen, addListener, dentro de la clase. Es decir, que toda instancia creada, tenga addListener por defecto...como lo declaras?

Por goliatone

66 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.