Detecting the end of a loaded SWF with many levels

I am loading and playing external SWFs, in sequence. I need to know when each one finishes, so that I can load and play the next one.

Here is how I am loading them, in my loading movie’s document class.


public function loadSWF():void
{

   mRequest =  new URLRequest( "some_movie.swf" );
   mLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, loadSWFComplete );
   mLoader.load( mRequest );
   addChild( mLoader );
}

private function loadSWFComplete( e:Event ):void 
{
   mChildSWF = MovieClip( e.target.content );
   ...
}

If these were just simple movies with a single top-level timeline I could put a stop() action in the last frame, and periodically check for ( mChildSWF.currentFrame == mChildSWF.totalFrames ), or put a label in the last frame like “EndSWF” and check for ( mChildSWF.currentLabel == “EndSWF” ).

However the problem is that these are big deep movies with only one frame on the main timeline, and various levels of movie clips and their timelines below, of varying lengths. So in this case mChildSWF.currentFrame will always be 1, and I cannot detect the end.

I suppose I can traverse down through the children and their children etc but there will be many movies with varying numbers of levels of MCs, so I want some kind of general solution. In these external movies, is there some kind of event I can throw from a timeline that is very deep down somewhere, that I can pick up in my loading movie’s document class?

This seems like a fairly standard situation, what is the standard solution to it?

Thanks!