Tails, боюсь способ, описанный вами - не подойдёт - я ничего не загружаю (или я чего-то не понял).
Вот функция:

Код AS3:
private function createTextures(m:MovieClip):void
{
var bm:MovieClip;
// заполняем первый этаж "мусором"
for (var i:int = 1; i < 300; i++)
{
bm = new bgSpot01;
place(bm,"bg");
m.addChild(bm);
bm = new bgSpot02;
place(bm,"bg");
m.addChild(bm);
}
var v:int;
for (i = 1; i < 800; i++)
{
v = 1+Math.random()*4;
if(v==1)
{
bm = new bgStone01;
}
if(v==2)
{
bm = new bgStone02;
}
if(v==3)
{
bm = new bgStone03;
}
if(v==4)
{
bm = new bgStone04;
}
place(bm,"stone");
m.addChild(bm);
}
for (i = 1; i < 50; i++)
{
v = 1+Math.random()*3;
if(v==1)
{
bm = new bgGrass01;
}
if(v==2)
{
bm = new bgGrass02;
}
place(bm,"grass");
m.addChild(bm);
}
var bmpd:BitmapData = new BitmapData(Gbv.SCR_W,Gbv.SCR_H,true,0);
bmpd.fillRect(bmpd.rect,0);
bmpd.draw(m,new Matrix(1,0,0,1,m.x,m.y));
var bmm:Bitmap = new Bitmap(bmpd);
while (m.numChildren)
{
m.removeChildAt(0);
}
m.addChild(bmm);
}
Функция place с каждым мувиком - это ещё дополнительные команды: растягивание мувика, прозрачность, расположение.
Т.е. просто одновременно на экран добавляется где-то около 2000 мувиков, которые ещё к тому же и нарисованы в векторе. Это ресурсоёмко. Это и хочу как-то разбить, распределить нагрузку так, чтоб можно было в это время, хотя бы, крутить колёсико "загрузки".