1. Структура xml примитивная. просто перечисление Item url.
2, 3, 4. Код, который отлично загружает элементы xml

Код AS1/AS2:
dr = new XML();
dr.ignoreWhite = true;
dr.onLoad = function(success) {
for (q=0; q<this.firstChild.childNodes.length; q++) {
_root.picHolder = this.firstChild.childNodes[q];
trace(_root.picHolder.attributes.url);
item= _root.attachMovie("item", "item"+q, q);
item._x += q*40;
item.url = _root.picHolder.attributes.url;
}
}
dr.load("data.xml");
А вот делать сложнее - это уже не "самое простое"
грабли поймала в конкретном месте подгрузки символа из библиотеки.
И в коде масса комментариев - всё очень логично.
Добавлено через 33 минуты
в общем. как справлюсь - выложу исходники
Добавлено через 1 час 4 минуты
и могли бы мне подсказать, что символы createEmptyMovieClip это не просто символы, а пути. поэтому иерархия ни к чему.

Код AS1/AS2:
dr.onLoad = function(success) {
//создаём галерею
gal=game.createEmptyMovieClip("gallery"+kv, game.getNextHighestDepth());
for (q=0; q<Math.ceil(dr.firstChild.childNodes.length/3); q++)
{ slide=gal.createEmptyMovieClip("slide"+q, game.getNextHighestDepth())//создаём слайд
slide._y+=q*20;
trace("slide._y "+slide._y);
for (k=q*3; k<q*3+3; k++)
{ if(k<dr.firstChild.childNodes.length)
{_root.picHolder = this.firstChild.childNodes[k];
cl = slide.attachMovie("item", "item"+k, k);
cl._x += (k-q*3)*100;
trace("cl._x "+cl._x);
cl.url = _root.picHolder.attributes.url;
}
}
}
}
Вот и всё. единственное, что я просила мне подсказать