udaaff : А почему трижды?
джонатан : не надо пихать this.getNextHighestDepth() везде. Если у Вас пустой, только что созданный, мувик, нет никакого смысла искать в нем "следующую свободную глубину" - они все свободны. К тому же, если еще плохо представляете себе области видимости функций, описанные udaaff ошибки почти неизбежны)) Конечно не надо создавать еще один контейнер в контейнере, теперь для прелоадера. Есть один контейнер, в нем - клип в который грузится картинка и в нем же - аттачится прелоадер. Считайте, что Вы вставляете картину в рамку. У рамки может быть стекло (маска), паспарту, этикетка и т.п. Эта картина в рамке - один объект, который Вы можете дальше использовать - повесить на стену, поставить на стол...
Что касается кода - как я уже сказал, начал было исправлять, но понял что силов не хватит. Поэтому придерусь к кускам -

Код:
mclL.onLoadStart = function(target:MovieClip) {
target._parent.attachMovie("prel", "preloader", target.getDepth()+2);
}
Вот это выделенное не имеет смысла - флаг НЕ СОХРАНИТСЯ!

Код:
function loadImg() {
for (var i:Number = 0; i<=loaderVars.allImages-1; i++) {
preview_mc.createEmptyMovieClip(i, preview_mc.getNextHighestDepth());
preview_mc[i].flagLoaded = false;
mcl.loadClip("photos/"+(i+1)+".jpg", preview_mc[i]);
}
} // - разве здесь не должна быть скобка? у Вас нет.
loadImg();
И да, там где я вставлял _parent - предполагалось что будет создан контейнер.