Creating a preloader for a "dynamic" external swf

i cant think of a solution for this… how can you preload an external swf that uses XML to load-in images?

assuming you have “parent.swf” that loads-in “child.swf”…
if “child.swf” were just a static / regular swf, then creating a preloader would be simple…
the code in “parent.swf” will probably be something like this:

var request:URLRequest = new URLRequest("child.swf");
var loader:Loader = new Loader()
loader.load(request);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, checkBytesStatusOfLoader);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, addPage);

var pageToBeLoadedSize:Number;
var pageToBeLoaded_Loaded:Number;
var pageToBeLoadedPercentage:Number;

function checkBytesStatusOfLoader(loadEvent:ProgressEvent):void
{
    pageToBeLoadedSize = loadEvent.currentTarget.bytesTotal;
    pageToBeLoaded_Loaded = loadEvent.currentTarget.bytesLoaded;
    pageToBeLoadedPercentage = Math.round(pageToBeLoaded_Loaded / pageToBeLoadedSize * 100);
    trace(pageToBeLoadedPercentage);
}

function addPage(loadEvent:Event):void
{
    addChild(loadEvent.currentTarget.content);
}

however, if “child.swf” were a dynamic swf (and by this i mean it loads-in external images using XML), then the code above wont work anymore (in terms of creating a preloader)… obviously because “parent.swf” can only see the “bytesTotal” of the raw “child.swf” and doesnt account for the “bytesTotal” of all the external images that “child.swf” will eventually load-in… if an accurate “bytesTotal” cant be defined, then a preloader that displays the proper percentage cant be made…

in case any of you are wondering, this would be the code for the “child.swf” that loads-in images:

var xmlLoader:URLLoader = new URLLoader();
var thumbsXML:XML;
var thumbsXMLList:XMLList;

xmlLoader.load(new URLRequest("files/thumblist.xml"));
xmlLoader.addEventListener(Event.COMPLETE, xmlLoadedConfirm);

function xmlLoadedConfirm(event:Event):void
{
    thumbsXML = XML(event.target.data);
    thumbsXMLList = thumbsXML.children();
    loadThumbnails();
}

var thumbnail:thumbnailSelector;
var thumbXPosition:Number = 528.7;
var thumbLoader:Loader;

function loadThumbnails():void
{
    for (var i:Number = 0; i < thumbsXMLList.length(); i++)
    {
        thumbnail = new thumbnailSelector;
        thumbnail.x = thumbXPosition - 40;
        addChild(thumbnail);
        thumbXPosition = thumbnail.x;
        
        thumbLoader = new Loader();
        thumbLoader.load(new URLRequest(thumbsXMLList*.attribute("source")));
        thumbnail.thumbPicHolder.addChild(thumbLoader);
    }
}