Форум 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)
-   -   цикл for и область видимости его переменной (http://www.flasher.ru/forum/showthread.php?t=117855)

axiom 08.11.2008 16:52

цикл for и область видимости его переменной
 
Hi all,скажите какая область видимости переменной цикла?В теле цикла трейсю выводит:1,2,3.А за ним только 4???

laurisgutmanis 08.11.2008 17:10

не понятен вопрос.

Можно пример кода?

axiom 08.11.2008 17:20

хех.
Код:

for(var i=1;i<=3;i++){};
trace(i);


etc 08.11.2008 17:26

И что вас смущает? Цикл отсчитал i до 4, всё правильно.

axiom 08.11.2008 17:26

как получить вне цикла 1,2,3

etc 08.11.2008 17:27

Цитата:

Сообщение от axiom (Сообщение 775529)
как получить вне цикла 1,2,3

Присвоить какому-нибудь i-ому объекту i-ый номер в теле цикла.

laurisgutmanis 08.11.2008 17:28

И?
Все работает.
Код:

for(i=1;i<=3;i++){
trace(i);
};

Как и должно выводить 1, 2, 3.
А что вы хотите?

axiom 08.11.2008 17:30

Код:

for (var i = 1; i<=3; i++) {
        this["btn"+i].onRelease = function() {
                var txt:LoadVars = new LoadVars();
                txt.onLoad = function() {
                        out_txt.text = txt.txt;
                };
                txt.load(i+".txt");
        };
}

Добавлено через 55 секунд
номер кнопки - номер текста???

laurisgutmanis 08.11.2008 17:34

Может так удобнее будет?:
Код:

for (var i = 1; i<=3; i++) {
this["btn"+i].visible= true;
this["btn"+i].enabled = true;
}

btn1.onRelease = function() {
        var txt:LoadVars = new LoadVars();
        txt.onLoad = function() {
                out_txt.text = txt.txt;
        };
                txt.load(i+".txt");
};

btn2.onRelease = function() {
...
}
btn3.onRelease = function() {
...
}


etc 08.11.2008 17:37

Боже мой, стандартная ошибка начинающего программиста. Как-то так, в общем:

Код:

var txt = new LoadVars();
txt.onLoad = function(success) {
        out_txt.text = this.txt;
}
function release() {
        txt.load(this.j + '.txt');
}
for (var i = 0; i<3; i++) {
        var btn = this['btn' + i];
        btn.j = i + 1;
        btn.onRelease = release;
}
delete btn;
delete i;
delete j;



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

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