he estado probando un tiempo con eventos personalizados en as3, ya que me urgen para un proyecto. Pero a la hora de comunicar eventos mediante EventDispatcher tengo un problema y es que si creo un evento en una Clase "Class1" y hago un Events.dispatchEvent(new Event( DispatcherEvent.START_EVENT )); lo hace sin problemas. pero si creo otra clase "Class2" y le añado un listener que escuche el evento me da : TypeError: Error #1034: Error de conversión forzada: no se puede convertir flash.events::Event@2950ce99 en DispatcherEvent.
Os dejo los cogidos debajo a ver si me podéis echar una mano
DispatcherEvent
Código ActionScript :
package{
import flash.events.EventDispatcher;
public class DispatcherEvent extends EventDispatcher{
private static var _instancia:DispatcherEvent;
public static const START_EVENT:String = "startEvent";
public function DispatcherEvent(s:Singleton){
}
public static function getInstancia():DispatcherEvent{
if (_instancia == null) {
_instancia = new DispatcherEvent(new Singleton);
}
return _instancia;
}
}
}
class Singleton{
}Class1
Código ActionScript :
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
public class Class1 extends MovieClip{
private var Events:DispatcherEvent;
public function Class1() {
addEventListener(MouseEvent.CLICK,Clicked);
Events = DispatcherEvent.getInstancia();
}
private function Clicked(e:MouseEvent){
Events.dispatchEvent(new Event( DispatcherEvent.START_EVENT ));
}
}
}
Class2
Código ActionScript :
package {
import flash.display.MovieClip;
public class Class2 extends MovieClip{
public function Class2() {
var Events:DispatcherEvent;
Events = DispatcherEvent.getInstancia();
Events.addEventListener(DispatcherEvent.START_EVENT, Conect);
}
public function Conect(e:DispatcherEvent){
trace("Evento Escuchado");
}
}
}Un Saludo.
