PDA

Просмотр полной версии : переменная = любой символ1


Dennis
23.02.2002, 10:58
Попробую сформулировать еще раз:
вопрос в том, что должно быть вместо * в строке
if (number(n*)==k)
чтобы эта строка сравнваила любую переменнную, начинающуюся на n, с величиной k

GenaG
23.02.2002, 16:46
если у тебя куча переменных, начинающаяся на n (n1, n2, n3... ) и тебе их надо сравнить с числом (или любым другим выражением, впрочем), то надо написать в этом же мувике, где они лежатfor (var a= начало диапазона, a<= конец диапазона, a++)
{
if( this["n"+a]== k )
{
то
}
}; Если же сравнение происходит в отличном от n'именованных переменных, то вместо 'this' пишешь адрес (относительный или абсолютный) мувика, в которых находятся твои переменные. Однако лучше использовать не толпу переменных, а всё же массив n=new Array();
n[0]=...;
n[1]=...; и т. д.. Преимуществ много -- например, проще узнавать длину диапазона. И ваще...

Dennis
23.02.2002, 21:42
Попробовал я по первому варианту, чтоб не объяснять на пальцах - вот весь код:

for (var i=0; i<=20; i++) {
if (number(eval("../:n" add i)) == 2) {
tellTarget ("sek") {
gotoAndStop (2);
}
} else {
tellTarget ("sek") {
gotoAndStop (1);
}
}
}

вобщем не работает. зато если просто задавать конкретное i, например равное единице

i=1;
if (number(eval("../:n" add i)) == 2) {
tellTarget ("sek") {
gotoAndStop (2);
}
} else {
tellTarget ("sek") {
gotoAndStop (1);
}
}


то все работает. что же здесь не так?

StimS
23.02.2002, 23:53
for (var i=0.....

А вар нафига?

GenaG
23.02.2002, 23:55
Мне трудно об этом говорить, и слёзы наворачиваются на глаза, но скрипт твой РАБОТАЕТ -- я не поленился проверить. Ищи ошибку. А лучше переходи-ка на орфографию 5-ки. Команда 'eval', сказывают, обрабатывается тяжелей и медленней, чем доступ к массиву, ну и ваще...

GenaG
23.02.2002, 23:58
to Stins:
var -- определяет местную переменную, кторая работает толька в пределах цикла.

StimS
24.02.2002, 00:04
Переврали имя. ну кому такое понравится?

if (number(eval("../:n" add i)) == 2) {
tellTarget ("sek") {
gotoAndStop (2);
}

Смысл входить и выходить? Пиши сразу:

if (number(eval("_root.sek" add i)) == 2) {
gotoAndStop (2);
}

GenaG
24.02.2002, 00:08
Прошу прощения за кривые пальчики, STIMS