PDA

Просмотр полной версии : eval и прямой доступ к свойству обьекта. Проблема


Charly84
18.06.2008, 17:17
Собственно создал код. Хочу его сделать универсальным.
В функцию передается строковая переменная. Из нее выделяю число. Соотвественно хочу получить свойство нужного мне обьекта (обьекты отличаются только числовым индексом в названии)


function fill_hc (button:String) {
button_n = Number(button.slice(8));
myValue = eval("_root.hc_fill"+button_n+".getRGB().toString()");
trace (myValue);
fill_helicopter (myValue);

};


Но при трейсе trace (myValue); переменная myValue=undefined.
Причем, если просто написать

myValue = _root.hc_fill1.getRGB().toString();

тоесть, напрямую задать имя обьекта - то без проблем получаю его свойство.

В чем может быть проблемка?
Всем заранее спасибо за помощь

wvxvw
18.06.2008, 17:30
какой-то, мягко говоря, очень извращенный способ...
Вариант #1: Забыть про _root и eval и не использовать их больше никогда. Сложить все объекты в массив и выбирать по индексу.
Вариант #2: myValue = _root["hc_fill"+button_n].getRGB().toString();

Charly84
18.06.2008, 17:30
решил проблему.
Написал просто
myValue = _root["hc_fill"+button_n].getRGB().toString();