Вход

Просмотр полной версии : Имена с переменными?


m13
01.08.2009, 04:12
Всем привет...у меня мини проблемка случилась...думаю всёже синтаксическая...

Делаю мультисекундомер...для этого у меня в библиотеке есть мувиклип содержащий в себе всё необходимое, и при нажатии на кнопку на главной сцене должны появляться эти мувики в необходимом количестве...

function addtimer() {
vi = vi+75; //для смещение нового объекта относительно предыдущего
mn = "Secundomer_"+count; //для генерация имени
_root.attachMovie("Secundomer",mn,count,{_x:25, _y:vi}); //для расположения мувиклипа секундомера из библиотеки на рабочую область с нужными мне координатами
count = count+1;//увеличиваем счётчик для последующего генерирования имени вновь расположенных мувиклипов
}

В тех вставляемых мувиклипах есть текстовые поля (время запуска, остановки и комментарий). Из них хочется сделать единый отчёт.

function genreport() {
for (var i:Number = 1; i<count; i++) {
mnr = "_level0.Secundomer_"+i; //генерация переменной имени мувика
trace(mnr); //нормально выводит "_level0.Secundomer_1"
report = mnr.job_name.text+' & '+mnr.start_time.text; //вот тут то и засада в этой формуле (((
trace(report); //выводит "undefined & undefined" вместо
trace (_level0.Secundomer_1.start_time.text); // нормально выводит содержание текстового поля
}
}

Посему нужна помощь, как правильно обращаться к элементам, чьи имена составляются из счётчиков в циклах? :rolleyes:

mooncar
01.08.2009, 11:07
С помощью синтаксиса [] (т.к. объекты являются элементами массива свойств родительского объекта). То есть:
this["Secundomer_"+i]

Бывает так, что меняются имена и глубже по вложенности, например:
_root["mc" + n][k]
и т.д.
К свойствам также можно обращаться:
_parent["mc" + n]._x

m13
01.08.2009, 16:21
Огрномный сенкс...Сработало! ;)

Пытался и сам с этими [ ] разобраться...но до истины так и не дошёл...

Особенно удивило отсутствие привычной точки между рутом и именем...

mooncar
01.08.2009, 16:25
Самого в свое время поразил этот синтаксис, но когда понял, что любой объект можно рассматривать как массив, чьи элементы - другие объекты, все оказалось логичным и в голове уложилось.