PDA

Просмотр полной версии : Проблема обработки функции в цикле


veSeliy
20.11.2009, 22:00
Всем привет!

Задача простейшая.
Есть 3 кнопки, из инстансов которых объявили массив.
Есть текстовое поле.

Объявлен цикл for, в котором прокручен весь цикл кнопок и объявлена реакция на нажатие кнопки. В зависимости от того, какая кнопка нажата, ее номер выводится в текстовом поле.

У меня получается, что при нажатии любой кнопки выводится текст значения конца массива.

Столкнулся с этой проблемой и сделал мини-симулятор данной задачи.

При чем интересно то, что подобная тема у меня уже в проектах встречалась, но там вроде сделано все так же и все при этом работает. Может я просто не замечаю какую-то мелочь?
Помогите, пожалуйста, с решением проблемы, все излазил, он решение пока так и не нашел.

Исходник прилагаю (там мало кода).

Заранее спасибо.

mooncar
20.11.2009, 22:15
var krug:Array = Array();
krug[1] = k1_mc;
krug[2] = k2_mc;
krug[3] = k3_mc;

function pusk() {
mytxt_mc.text = this.num;
}


for (var k = 1; k <= 3; k++)
{
krug[k].num = k;
krug[k].onRelease = pusk;
}


Добавлено через 2 минуты
Ваша ошибка:
Вот тут:
for (var k=1;k<=3;k++)
{
krug[k].onRelease = function ()
{
pusk(k);
}
}
в конце работы цикла k равно 4 и на всех кнопках честно висит
pusk(4);

Вот тут обсуждалось, почему именно так:
http://www.flasher.ru/forum/showthread.php?t=130126

veSeliy
21.11.2009, 17:33
mooncar, спасибо большое.
Буду пробовать.