package utils {
import flash.events.Event;
public class CustomEvent extends Event
{
/* Place as many events as you want to include in this class */
public static const EXAMPLE_EVENT:String = "exampleEvent";
public static const ANOTHER_EVENT:String = "anotherEvent";
/* Create properties to hold data that you want to pass with your event
Include as many as you like. */
public var dataObj:Object;
public function CustomEvent(type:String, dataObj:Object = null)
{
this.dataObj = dataObj;
/* Call the super function which fires off the event
set the event type, bubbling and cancelable properties */
super(type, false, false);
}
/* Duplicates the instance of the event */
override public function clone():Event
{
/* This is the event that will be received by your handler function */
return new CustomEvent(type, dataObj);
}
}
}
/********** To use this class would look something like this **************/
/* Dispatch event with data to be passed
dataObj.name = "test data";
dispatchEvent(new CustomEvent(CustomEvent.EXAMPLE_EVENT, dataObj));
/* Listen for your custom event
addEventListener(CustomEvent.EXAMPLE_EVENT, handleExample);
/* Handle your custom event with custom data
function handleExample(event:CustomEvent):void {
var mydata:Object = event.dataObj;
}
/*************************************************************************/