Fijaté en la ayuda de Flash de dónde extiende un MovieClip
Herencia: MovieClip --> Sprite --> DisplayObjectContainer --> InteractiveObject --> DisplayObject --> EventDispatcher --> Object
Eso indica que un MovieClip tiene TODOS los métodos y propiedades de un EventDispatcher (y todos los de un DisplayObject, y todos los de un InteractiveObject y....)
Así que si tu clase es del tipo
Código ActionScript :
public class ImageLoader extends MovieClip{ ...}
puedes escribir tranquilamente
Código ActionScript :
dispatchEvent(new Event(ImageLoader. IMGS_LOADED));
Te indicaba que, en la función onComplete de tu clase escribas, p.e.
Código ActionScript :
dispatchEvent(new Event(Event.COMPLETE));
Ahora, en la principal digamos que has escrito
Código ActionScript :
var miloader:ImageLoader=new ImageLoader(); //<--he puesto como ejemplo que tu clase se llama ImageLoader
miloader.addEventListener(Event.COMPLETE,onComplete)
function onComplete(e:Event){
trace("se completó el loader")
}
Observa que es un modo "natural" de funcionar. En Flash, nos encontramos con algunas clases que "dispatchan" eventos. (por ejemplo, la Clase MovieClip dispacha ENTER_FRAME), y nosostros controlamos que esos eventos mediante addEventListener.
NOTA: He usado la misma constante "Event.COMPLETE" por no crearme otra constante y porque me parece bastante claro. Igual podría haber escrito
Código ActionScript :
//en la función onComplete del Loader
dispatchEvent(new Event("ACABO"));
Y en en la principal
Código ActionScript :
var miloader:ImageLoader=new ImageLoader();
miloader.addEventListener("ACABO",onComplete)
function onComplete(e:Event){
trace("se completó el loader")
}