PDA

Просмотр полной версии : Как вставить переменную ?


motoroller
19.01.2007, 23:00
есть что-то типа

_root.mc1._visible=false;
_root.mc2._visible=false;
_root.mc3._visible=false;
_root.mc0._visible=false;

for (i=0; i<4; i++) {
param='mc'+i;
trace(param);
_root.param._visible=true;

}

как мнес сделать чтобы в эту строку " _root.param._visible=true;
"
вставилось значение переменной param, а не само название param

Спасибо

DarkLight
19.01.2007, 23:15
Вот так:
_root[param]._visible=true;

CorC
20.01.2007, 17:24
или

eval(param)._visible=true;

etc
20.01.2007, 17:31
CorC, eval зло.

CorC
20.01.2007, 17:45
иногда да, но начинающим проче понять eval чем mc[]
по собственному опыту говорю, хотя щаз и время другое...

pkfun
20.01.2007, 17:48
CorC, eval зло.
А mc[] не зло? :)

CorC
20.01.2007, 17:49
а как еще обойтись?

pkfun
20.01.2007, 17:52
Массивы. Но пока толком не разобрался в этом вопросе( потому и спрашиваю, а не утверждаю).

CorC
20.01.2007, 17:57
хм, ты хочешь при создании какого-то мува сразу вноситьь его имя\линк в массив?
это точно зло :)
1 как ты оределишь мув в массиве?
2 как ты определишь номер по муву?
это ж скрипт будет километровым

pkfun
20.01.2007, 18:04
var mcLinks:Array = new Array(3);
//
for (i=0; i<mcLinks.length; i++) {
var mc:MovieClip = this.attachMovie('mc'+i, 'mc'+i, this.getNextHighestDepth(),{_x:i*100+10,_y:Stage.height/2});
mcLinks[i]=mc
}
//
//изменить у всех мувиков видимость
for(i=0;i<mcLinks.length;i++){
mcLinks[i]._visible=false
}
Да нет. Только если их много, то имена в массив.

CorC
20.01.2007, 18:17
это будет просто везением если имена клипов похожи,
а если нет то это уже не катит, и приходится как то
обходится без этого, да и раньше я без массива ссылок
обходился, и никто не жаловался :)

pkfun
20.01.2007, 18:24
var mcNames:Array = ['mc0','mc1','mc2'];
var mcLinks:Array= new Array(3)
//
for (i=0; i<mcNames.length; i++) {
var mc:MovieClip = this.attachMovie(mcNames[i], 'mc'+i, this.getNextHighestDepth(),{_x:i*100+10,_y:Stage.height/2});
mcLinks[i]=mc
}
//
//изменить у всех мувиков видимость
for(i=0;i<mcLinks.length;i++){
mcLinks[i]._alpha=10
}
А я в поиске. Некоторые задачи таким образом очень легко решаются. Например перемасштабирование страницы при изминении размера окна броузера. А клипы можно и одинаково назвать, различия токо по цифрам. Главное оформить библиотеку аккуратно( папки с назаниями групп и т.д.)
Но вы отнеситесь к моим рекомендациям просто как к еще одной точке зрения. :)

CorC
20.01.2007, 18:28
поверь мне, проще допустим в 2 for писать mc["f"+i+j] чем искать по массиву, тут лишнее обращение к функции, которая сама уже обращ к обьекту...
иногда мувы не то что изменяются, но еще и удаляются, и создаются по новой, но под др именем...

etc
20.01.2007, 18:35
CorC, новичкам даже не стоит показывать древние методы.

BACRHR
21.01.2007, 15:09
function show_mc() {
for (var mc in _root) {
if (mc.indexOf('mc') == 0) {
_root[mc]._visible = true;
}
}
}

iNils
21.01.2007, 17:09
motoroller, я вас предупреждал.