Форум 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)
-   -   передача переменной из цикла для onPress (http://www.flasher.ru/forum/showthread.php?t=98864)

die hetzer 23.07.2007 18:09

передача переменной из цикла для onPress
 
Вложений: 1
hi all!
помогите советом, кто может.

на сцене 3 кнопки (button1, ..2, ..3)
нужно чтобы каждая кнопка выводила разный trace (0, 1, 2)

не работает (trace выводит на каждой кнопке "3")
Код:

loadInfo = function(a) {
        trace(a)
}

for (var i=0; i<3; i++) {
        _root["button"+i].onPress = function() {
                loadInfo(i);
        }
}

работает, но решение, чувствую, кривое
Код:

loadInfo = function(a) {
        trace(a)
}

for (var i=0; i<3; i++) {
        _root["button"+i].i = i;
        _root["button"+i].onPress = function() {
                loadInfo(this.i);
        }
}


исходник

BigDan 23.07.2007 18:13

Решение самое, что есть не кривое

screamge 23.07.2007 18:19

Код:

for (var i=0; i<= 3; i++) {
        _root["button"+i]._id = i
        _root["button"+i].onPress = function (){
                trace (this._id)
        }
}


die hetzer 23.07.2007 18:24

screamge, спасибо. я заменил i на _id но суть таже

etc 23.07.2007 18:25

screamge, а чем твое решение отличается от второго кода в первом посте?

Вообще, если хочется извратиться, то можно так:

Код:

loadInfo = function(a) {
        trace(a)
}

for (var i=0; i<3; i++) {
        var btn = _root['button'+i];
        btn.onPress = function() {
                loadInfo(Number(this._name.substr(6)));
        }
}


die hetzer 23.07.2007 18:26

__etc, ага я тоже об этом думал)

screamge 23.07.2007 18:47

Ничем, только работает и вместо "i" написанно "id" :) вот и всё)).

etc 23.07.2007 18:53

Цитата:

Сообщение от screamge
Ничем, только работает и вместо "i" написанно "id" :) вот и всё)).

Замечательно :D
Ещё тем, что у тебя «<=», а не «<»…

screamge 23.07.2007 18:55

вот уже три отличия нашли ))))))

Цитата:

screamge, спасибо. я заменил i на _id но суть таже
Ок, я на авторство кода и не претендовал :D

Cкептик 23.07.2007 21:20

Ведь последняя кнопка тогда ничего не выдает. Зачем такое извращение? :)


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

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