Форум 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=89664)

Kinsler 20.12.2006 20:34

Циклы и массивы, это глюки или нет?
 
почему вот так:

Код:

var param:Array = new Array();

for (i=0; i<7; i++) {
        param[i] = 1;
}

for (z=0; z<7; z++) {
        _root['submit'+z].onRelease = function() {
                for (j=0; j<7; j++) {
                        param[j] = param[j] + 1;
                }
                trace(param);
        }
}

все ок
а вот так появляеться лишний элемент массива?

Код:

var param:Array = new Array();

for (i=0; i<7; i++) {
        param[i] = 1;
}

for (z=0; z<7; z++) {
        _root['submit'+z].onRelease = function() {
                param[z] = param[z] + 1;
                trace(param);
        }
}

я понимаю второй код кривой, но откуда все таки лишний элемент, я до этого просто допереть не могу.
ну на сцене мувик надо сделать с именем например submit0

lowka 21.12.2006 01:06

Код:

for (z=0; z<7; z++) {
//
}
trace(z); // 7

Отсюда и лишний элемент.

Kinsler 21.12.2006 11:03

trace(z) выдает 7 элементов

trace(param.length); выдает 8

CorC 21.12.2006 11:35

от 0 до 7 будет 8

Kinsler 21.12.2006 11:45

почему до 7-то???
до 6....

iNils 21.12.2006 13:40

В обоих кодах trace(param.length) у меня выдает 7.

Kinsler 21.12.2006 13:42

а trace(param); после нажатия на кнопку что выдает?
у меня: 1,1,1,1,1,1,1,NaN

etc 21.12.2006 13:45

Последний в цикле будет 6-ой. Но начинается с нуля — итого 7 элементов. После выполнения цикла z будет равен 7. У тебя в onRelease используется z, который и равен семи. Отсюда лишний элемент, само собой NaN, потому что не был определен (undefined) и сложен с единицей. 1+undefined = NaN.

Kinsler 21.12.2006 13:46

см. мою предпоследнюю мессагу
их 8 штук.
и последний NaN

etc 21.12.2006 13:57

Прочитай мой пост снова, я его поправил :)


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

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