Попробую обьяснить:
В самом флэше есть layer-ы, слои, в которых ты что нибудь рисуешь. При компиляции мувика, слоев нету, они все сливаются в 1 слой, генерируется мувик _root. Он автоматически занимает глубину 0.
//извините за убожеское "генерируется мувик _root" - это чтобы понятнее было.
Теперь создадим внутри _root`a ещё 1 мувиклип

Код:
attachMovie("page0","pic"+0);
Из библиотеки хапаем page0, даем ему имя pic0 (зачем ты писал "pic"+0 - незнаю)
Откровенно говоря, я не понимаю почему это работает.
синтаксис такой:

Код:
attachMovie(linkID,newName, DEPTH);
Что такое depth? - это глубина, туда грузяться мувики при их создании.
Скажем, выполним такой код:

Код:
attachMovie("mc1","mc1", 1);
attachMovie("mc2","mc2", 2);
Mc 2 оказжеться выше чем mc1 (т.е. mc2 будет виден полностью, а mc1 - частично, т.к. mc2 накроет mc1)
Это произошло потому, что глубина mc2 выше, чем глубина мс1.
Теперь другой код:

Код:
attachMovie("mc1","mc1", 2);
attachMovie("mc2","mc2", 1);
Глубина mc1=2, mc2=1 ==> mc1 будет на переднем плане.

Код:
attachMovie("mc1","mc1", 1);
attachMovie("mc2","mc2", 1);
А это то, о чем сказал telit, создали 2 мувиклипа на 1 глубину. Теперь mc1 вообще не существует, его глубину просто перекрыли. Другими словами, если глубина - это квартира, то в квартиру мы заселяем жильцов - movie clip`ы. Все что мы видим на сцене заселено по квартирам.
В квартире #1 жил мс1, но его выселели и поселили мс2. Теперь мс1 вообще нет, а мс2 появился вместо него.
Вот что такое глубина.
Нужные вещи:

Код:
mc.getNextHighestDepth();
Например:

Код:
_root.getNextHighestDepth();
возвращает следуйщую НАИБОЛЬШУЮ величину.
Т.е. скажем

Код:
for (var i:Number=0; i<=20; i++) attachMovieClip("mc","mc"+i,_root.getNextHighestDepth());
Будет приделывать мувики, при этом ни 1 мувик не удалиться.

Код:
mc.removeMovieClip(mc)
Пример:

Код:
_root.removeMovieClip("mc");
Удалят мувиклип с концами, а с ним все его методы и глубину.
ЗЫ если были мувики с глубинами 1 2 3 4 5, и ты удалишь 3, (т.е. занятые глубины будут 1 2 4 5, getNextHighestDepth вернет 6.
Ещё вроде как вместо mc можно указать Number, глубину, но никогда не пользовался.

Код:
mc.swapDepths(depth);
Пример:

Код:
_root.mc.swapDepths(99);
Тупо перемещает клип mc на глубину 99. Если на глубине 99 что то было, то это что то перемещается на глубину, которую имел mc. Проще говоря, mc1.swapDepths(mc2) выполнит следуйщее:
глубина мс1 станет глубиной мс2.
глубина мс2 станет глубиной мс1.
Ещё есть классы depthManager, но тебе до них рановато, я считаю...
P.S. Увидел столь красиво оформелный пост, ни 1 грамматической ошибки, все английские слова написаны английскими буквами... Не поленился, расписал человеку.)
Извиняйте если обьяснил как детсаду)
update:
Про масивы: не может быть что пуст.

Код:
var mc:MovieClip=createEmptyMovieClip("mc1",_root.getNextHighestDepth());
var arr:Array=[]; //или var arr:Array=new Array(), это более краткая запись
arr.push(mc);
mc=attachMovie("mc","mc2",_root.getNextHighestDepth());
arr.push(mc);
trace(arr); //Output: _level0.mc1,_level0.mc2