Lo que sucede es que cuando usas el metodo MovieClip.loadMovie() Flash reemplaza el contenido TOTAL del movie clip en cuestion, con esto se van tus MovieClip.onData, MovieClip.onLoad es por eso que debe usar otro MovieClip. La logica del MovieClipLoader es simple.
Código :
// Creas el MovieClip que va a cargar la movie/imagen.
_root.createEmptyMovieClip("targetMovieClip", _root.getNextHighestDepth());
// Creas un objeto Listener que sera quien haga las operaciones luego de la carga.
var myListener:Object = new Object();
myListener.onLoadInit = function(mc:MovieClip):Void {
// Aqui van tu codigo.
// Imprimamos el tamaño.
trace(mc._width + " " + mc._height);
};
// Creas tu MovieClipLoader, le indicas quien va a escuchar la carga y que quieres cargar.
var myLoader:MovieClipLoader = new MovieClipLoader();
myLoader.addListener(myListener);
myLoader.loadClip("movie.swf", _root.targetMovieClip);
Tambien puedes usar los metodos de linea de tiempo en el clip.
onClipEvent (load) {} y onClipEvent (data) {}
Puede que te resulte mas facil hacer lo ultimo, pero como que yo lo veo, es desordenado tener codigo por todas partes.
Suerte.