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

billion 06.07.2006 14:37

помогите сделать цикл+onRelease+function
 
смысл в следующем:

есть функция, которую я хочу динамически прицеплять к кнопкам(мувикам):

Код:

function my_func(nnn) {
        trace (nnn);
}

прицепляю без цикла (всё работает):

Код:

_root.node1.onPress = function() {my_func(1);}
_root.node2.onPress = function() {my_func(2);}
..................
_root.node99.onPress = function() {my_func(99);}

заключаю в цикл:
Код:

for (i=1; i<3; i++) {
        _root["node"+i].onPress = function() {
                my_func(i);
        };
}

трэйс функции при нажатии на любую ноду выдаёт цифру 3 то есть конечную i = 3 (а мне надо чтоб для ноды1 было i = 1 и т.д. по порядку)

пробовал и так:

Код:

for (i=1; i<3; i++) {
        _root["temp"+i] = i;
        trace ("111 ="+_root["temp"+i]);
        _root["node"+i].onPress = function() {
                my_func(_root["temp"+i]);
        };
}

вывод трэйса:

Код:

111 =1
111 =2
undefined
undefined

почему undefined????
весь измучился.... помогите несмышлёному...

iNils 06.07.2006 14:51

billion получает предупреждение за игнорирование тегов [code][/code]

Код:

function my_func (nnn) {
        trace (nnn);
}
for (i = 0; i < 3; i++) {
        var mc = _root["node" + i];
        mc.id = i;
        mc.onPress = function () {
                my_func (this.id);
        };
}


billion 06.07.2006 15:54

большое спасибо! часов 5 убил на эту проблему.
так и не понял почему мой вариант не работал. вроде то же самое писал.

etc 06.07.2006 21:12

billion, не тоже самое. После выполнения цикла глобальная для функции my_func переменная i будет равна трём. У тебя вызывается my_func(i), а не my_func(число), собственно, ты так и написал.


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

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