After reading the answers and gaining an understanding of what I can achieve, I have implemented the following (thought it would help users in the future if they could see some example code).
private static var dispatcher:EventDispatcher = new EventDispatcher();
public static function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
dispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
public static function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void {
dispatcher.removeEventListener(type, listener, useCapture);
}
public static function dispatchEvent(event:Event):Boolean {
return dispatcher.dispatchEvent(event);
}
public static function hasEventListener(type:String):Boolean {
return dispatcher.hasEventListener(type);
}