¿Cómo implementar eventos personalizados?

¿Cómo implemento correctamente los eventos personalizados? Pensé que lo siguiente debería funcionar, pero nunca recibo CustomEvent.READY en el Modelo principal

package mvc
{
    import flash.events.Event;
    public dynamic class CustomEvent extends Event
    {
       public static const MY_EVENT:String = "myEvent";
       public static const READY:String = "ready";

    public function CustomEvent(type:String)
    {
        super(type);
    }
}
}

En el Model.as que extiende AbstractModel que extiende EventDispatcher

private function initWorld():void {
        _worldModel = new WorldModel();
        _worldModel.addEventListener(CustomEvent.READY, update);
}

Entonces en WorldModel.as que extiende AbstractModel que extiende EventDispatcher, envío un evento, pero nunca se llama a la actualización. ¿por qué

dispatchEvent(new Event(CustomEvent.READY));

Respuestas a la pregunta(2)

Su respuesta a la pregunta