Eventos AS3 en Flash 9

27 \27\UTC marzo \27\UTC\Thursday 2008

Ya habia aprendido a disparar eventos en Flex, supuse que sería muy parecido en Flash9 y no me equivoque (bueno era obvio, los dos usan AS3).

Como dije, es parecido no igual. Me demoraría hallando las diferencias y explicandolas aquí, mejor dejo un ejemplo de la extensión de la clase que maneja los eventos en Flash9. Simple y practica.

En AS2
import mx.events.EventDispatcher;
mx.events.EventDispatcher.initialize(this);
var logEventos:Object = new Object();
logEventos.onNewLog = function(evtobj:Object):Void{
trace(“Parametro dato2: “+evtobj.dato2);
}
addEventListener(“onNewLog”, logEventos);
dispatchEvent(“onNewLog”, new Object({dato1:”A”, dato2:”B”, dato3:”C”}));

En AS3
Archivo LogEvts.as
package {
import flash.events.*;
public class LogEvts extends Event{
public var data:Object;
public function LogEvts(logObj:Object, type:String):void {
super(type, true);
this.data = logObj;
}
}
}

En el .Fla
import LogEvts.as
private var
logevts:LogEvts= LogEvts();
addChild(
logevts);
function logsTrace(evtobj:LogEvts):void{
trace(“Parametro dato2: “+evt.data.dato2);
}
addEventListener(“onNewLog”, logsTrace);
logevts.dispatchEvent(new LogEvts(new Object({dato1:”A”, dato2:”B”, dato3:”C”}), “onNewLog”));

Y si te preguntas porque coloco el addEventListener en la raiz y no al objeto, es porque el evento es diaparado pasandole como parametro bubble=TRUE (en el as).
Para entenderlo puede visitar el blog de Alberto Alcaraz, post: sobre los eventos en AS3.

Si bien los eventos personalizados en AS3 no son tan simples como en AS2. Sinceramente, me molesta tener que crear una clase para esto, pero la versatilidad es mucho mayor.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: