Есть программа:

Код:
var stageWidth:int=550; var stageHeight:int = 400;
var mapXML:XML = new XML();
var mapLoader:URLLoader = new URLLoader(new URLRequest("map.xml"));
mapLoader.addEventListener(Event.COMPLETE, redrawMap);
function redrawMap(event:Event):void
{
mapXML = XML(mapLoader.data);
trace("Data loaded.");
var pic:Array = new Array();
var picLoader:Loader = new Loader();
picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,picLoadComplete);
for each (var cell:XML in mapXML.cell)
{
var filename:String = String(cell.filename);
var xc:Number = Number(cell.xc);
var yc:Number = Number(cell.yc);
picLoader.load(new URLRequest(filename));
}
function picLoadComplete(event:Event):void
{
trace(xc);
pic.push(new Bitmap());
pic[0].bitmapData = event.target.content.bitmapData;
pic[0].x = xc*pic[0].width;
pic[0].y = stageHeight - (yc+1)*pic[0].height;
addChild(pic[0]);
}
}
Проблема в том, что, как мне кажется, новый

Код:
picLoader.load(new URLRequest(filename));
можно вызывать лишь из обработчика предыдущего вызова - из

Код:
function picLoadComplete(event:Event):void
т.е получается,нужна рекурсия.
Можно ли ее избежать?
Если нет, то какое условие надо ставить для выхода из рекурсии?