Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как вставить переменную ? (http://www.flasher.ru/forum/showthread.php?t=90883)

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

Цитата:

Сообщение от __etc
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, я вас предупреждал.


Часовой пояс GMT +4, время: 21:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.