Have your custom class extend EventDispatcher and dispatch the desired event.
For example, for simple events like Event.Complete simply dispatch a new Event:
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
public class ListaDir extends EventDispatcher
{
public function dispatch():void
{
dispatchEvent(new Event(Event.COMPLETE));
}
}
}
If you need to dispatch an event with data, it may be optimal to create your event classes.
CustomEvent class
As an example, this CustomEvent demonstrates a data payload object:
package
{
import flash.events.Event;
public class CustomEvent extends Event
{
public static const COMPLETE:String = "COMPLETE";
public var data:*;
public function CustomEvent(type:String, data:*, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
if (data)
this.data = data;
}
}
}
ListaDir class
When this class dispatches your CustomEvent, it can send a payload of data:
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
public class ListaDir extends EventDispatcher
{
public function dispatch():void
{
var dataObject:Object = {name: "Example Data"};
dispatchEvent(new CustomEvent(CustomEvent.COMPLETE, dataObject));
}
}
}
Implementation:
Instantiate and create an event listener:
var listaDir:ListaDir = new ListaDir();
listaDir.addEventListener(CustomEvent.COMPLETE, completeHandler);
On complete, retrieve your data object:
protected function completeHandler(event:CustomEvent):void
{
var dataObject:* = event.data;
}