PDA

Просмотр полной версии : CreateEmptyMovieClip убивает ранее созданый CreateEmptyMovieClip


sxstudio
20.04.2008, 22:29
F_createMenu = function () {
len = menu_xml.childNodes[0].childNodes.length;
for (var i = 0; i<len; i++) {
_root.createEmptyMovieClip("btn"+i,i);
var b = _root["btn"+i];
b.i = i;
b.attachMovie("back","back",1);
b.createTextField("tf",2,0,0,200,20);
with (b.tf) {
border = false;
multiline = false;
autoSize = true;
selectable = false;
text = menu_xml.childNodes[0].childNodes[i].attributes.name;
}
b.back._width = Stage.width/len;
b.tf._x = (b.back._width-b.tf._width)/2;
b._y = b._height*i;
b.link = menu_xml.childNodes[0].childNodes[i].attributes.link;
b.sublen = menu_xml.childNodes[0].childNodes[i].childNodes.length;
var my_color = new Color(b.back);
my_color.setRGB(menu_xml.childNodes[0].childNodes[i].attributes.color);
b.onRollOver = function() {
for (var j = 0; j<this.sublen; j++) {
this.nod = menu_xml.childNodes[0].childNodes[this.i].childNodes[j];
//j == 0 ? trace("-----------------") : null;
//trace(j+" : "+this.nod.attributes.name);
_root.createTextField("tfield"+j,j+45,0,0,200,20);
_root["tfield"+j]._x = 270;
_root["tfield"+j]._y = 20*j;
_root["tfield"+j].text = this.nod.attributes.name;
}
};
}
};

Если к j не плюсовать 45, то btn+i стираются.. Почему на одном слое не может существовать при таком раскладе 2 обьекта и более? Или может кто-то иначе бы написал?

О том что это такое и где лежит аттач написано тут (http://www.flasher.ru/forum/showthread.php?t=111232)
Спасибо

iNils
20.04.2008, 22:40
Это не слой, а глубина. На одной глубине может существовать только один объект.

sxstudio
20.04.2008, 23:23
понял. спасибо, А если имеем 2 обьекта на разных глубинах, то у кажого из обьектов свооя глубина, или глубина это нечто общее для всего мувика

iNils
20.04.2008, 23:31
Внутри каждого клипа, система отсчета глубин своя.