Показать сообщение отдельно
Старый 05.10.2007, 22:52
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 14  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от diclofoss
У меня есть цикл:

Код:
for (i=0; i<total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
link[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
...
ls = link[i];
_root['clip_d']['mc'+i].onRelease = function() {
trace(ls);
};
}
В чем моя ошибка, почему при нажатии по кнопке функция берет последний ls а не те которые были установлены в цикле.
Еще парочка вариантов:
Код:
for (i=0; i<total; i++) {
	image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
	link[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
	//
	ls = link[i];
	_root['clip_d']['mc'+i][ls] = ls;
	_root['clip_d']['mc'+i].onRelease = function() {
		trace(this.ls);
	};
}
Код:
for (i=0; i<total; i++) {
	image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
	link[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
	//
	ls = link[i];
	_root['clip_d']['mc'+i].onRelease = genOnRelease(ls);
}
function genOnRelease(ls) {
	return function () {
		trace(ls);
	};
}