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

BorisL 13.10.2005 12:14

Передача переменных
 
Добрый день.
Уже открыл такую тему в общих вопросах, но ответа не нашлось.
Думаю здесь она даже уместней.

Столкнулся с следующей проблемой:

Есть нефиксированное количество кнопок. Вешаю на них код циклом(все это происходит при получении данных из файла) :
Код:

this.vars = new LoadVars();
this.vars.load("data.txt");
this.vars.onLoad = function() {
for (i=1; i<=this.num; i++) {
_root.txt4['anons_item'+i].anons_btn.onRelease = function(){
код
}
}
}

Суть: мне нужно, чтобы при нажатии на любую из кнопок произошел переход в определенное место и при этом в мувик на новом месте загрузились данные, соответствующие кнопке. Грубо говоря, нужно чтобы как-нибудь заработала конструкция:
Код:

this.vars = new LoadVars();
this.vars.load("data.txt");
this.vars.onLoad = function() {
for (i=1; i<=this.num; i++) {
_root.txt4['anons_item'+i].anons_btn.onRelease = function(){
trace(i);
}
}
}

Не могу понять, как передать исполняемой на кнопке функции переменную i.
Помогите отцы :)

Der Grossen 13.10.2005 12:59

помоему здесь проще с XML

Код:

function delaemMenu() {
        var node_xml = menu_xml.firstChild;
        var curr_node;
        var curr_item;
        var curr_menu = this.createEmptyMovieClip("mainmenu_mc", 0);
        for (var i = 0; i<node_xml.childNodes.length; i++) {
                curr_item = curr_menu.attachMovie("menuitem", "item"+i+"_mc", i);
                curr_item._x = 0;
                curr_item._y = i*curr_item._height;
                curr_item.trackAsMenu = true;
                curr_node = node_xml.childNodes[i];
                curr_item.node = node_xml.childNodes[i];
                // attributes to menuitem
                curr_item.razdel = curr_node.attributes.razdel;
                curr_item.onRelease = function() {
                trace(this.razdel);
                };
        }
        // end for
}


BorisL 13.10.2005 13:34

Спасибо, уже по другому решил.

__i 13.10.2005 13:56

ну блин никак, у тяж кнопка откуда знает чему i равно???

this.vars = new LoadVars();
this.vars.load("data.txt");
this.vars.onLoad = function() {
for (i=1; i<=this.num; i++) {
//вот здеся если написать так

_root.txt4['anons_item'+i].anons_btn.i=i;

_root.txt4['anons_item'+i].anons_btn.onRelease = function(){
//а здеся исправить trace(i); на
trace(this.i);
}
}
}

BorisL 13.10.2005 14:23

Так и решил:)
Но все равно спасибо за ответ.

nouba 13.10.2005 14:25

Да... верно -

trace(this.i);
такая маленькая разница а такой большой смысл :D
Проверено.. так будет работать


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

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