![]() |
|
||||||||||
|
|
|
|||||
|
Господа, подскажите пожалуйста:
есть цикл, в котором аттачю кнопки в мувик, и задаю им обработчики. function initNav1() {
var i = 0;
while (i<menu.length) {
var mc = mc_menu.attachMovie("nav1_item", "mc_nav1_item_"+i, int(i+100), {_x:i*100 ; _y:0});
var bt = mc.attachMovie("button", "mc_bt_"+i, int(i+110));
//описание кнопки
bt.onRollOver = function() {
mc.mc_text_on._alpha = 100;
mc.mc_text._alpha = 0;
trace(bt);
};
bt.onRollOut = function() {
mc.mc_text_on._alpha = 0;
mc.mc_text._alpha = 100;
};
i++;
}
}
Т.е. я получаю i одинаковых кнопок, с одинаковыми индексами и одинаковой обработкой... В чем здесь прокол? Последний раз редактировалось Ведьмак; 14.06.2007 в 01:03. |
|
|||||
|
|
|
|||||
|
отличный совет, а главное настолько оторванный от контекста, насколько это возможно....
ну заменил я в моем цикле bt в обработчиках на mc["mc_bt_"+i]... все равно картина такая же... если туда же добавить то я получаю кликая по всем кнопкам последний индекс(i) в моем цикле... Последний раз редактировалось Ведьмак; 14.06.2007 в 02:35. |
|
|||||
|
Ну так правильно, переменная то берется одна и та же.
|
|
|||||
|
Регистрация: Feb 2007
Сообщений: 264
|
function initNav1() {
var i = 0;
while (i<menu.length) {
var mc = mc_menu.attachMovie("nav1_item", "mc_nav1_item_"+i, int(i+100), {_x:i*100 ; _y:0});
var bt = mc.attachMovie("button", "mc_bt_"+i, int(i+110));
//описание кнопки
bt.onRollOver = function() {
mc.mc_text_on._alpha = 100;
mc.mc_text._alpha = 0;
trace(this);
trace(this._parent);
};
bt.onRollOut = function() {
mc.mc_text_on._alpha = 0;
mc.mc_text._alpha = 100;
};
i++;
}
}
|
|
|||||
|
Cпасибо this.creature и Tardos Mors... после замены в обработчике mc на this._parent функции стали нормально обращаться к каждой кнопке...
объясните, pls, почему нельзя было использовать mc? потому что эти функции , как бы сказать не запоминаются с теми переменными которыми они были заявлены каждый раз в цикле, а просто "существуют" и при активации кнопки используют последнее заявленой значение i и mc ?? Последний раз редактировалось Ведьмак; 14.06.2007 в 14:06. |
|
|||||
|
Banned
|
|
|
|||||
|
2 chingachgoog: спасибо... именно это я и подозревал...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|