Показать сообщение отдельно
Старый 02.10.2002, 01:10
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 5  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
вариант, который предложил TTS "стилистически" правильнее, но работать тоже не будет :)
все присвоения, которые вы делаете в теле создаваемой функции произойдут уже в момент ее создания...
то есть сколько нужно раз тем переменным присвоится какое-то значение, но потом, при выполнении онРелизов - желаемого эффекта не будет...
Код:
function setonrelease(subj, a) {
	subj.onRelease = function() {
		_root.action_man = this.num;
		trace(_root.action_man);
	};
	subj.num = a;
}
for (i=0; i<5; i++) {
	setonrelease(this["button"+i], i);
}
так работать будет - то есть в сами кнопки надо запихать свойство, значение которого потом надо передавать в _root.action_man


и вообще - с динамическим созданием функций надо работать оч аккуратно...
мы тут спорили как-то с Джоном по этой части...
...и пришли к выводу, что это может работать самым неожиданным образом :))

например:
Код:
function a() {
	var p = "!!!!"
	var b = function () {
		var test = p
		trace(test);
	};
	var p = "????"
	return b;
}
a()();
...улавливаете ? ;)
берем переменную,
создаем функцию, которая использует ее значение
(а указателей-то на строковые и числовые переменные во флэше как-бы нет вообще-то...)
а уже _после_ создания функции меняем значение переменной...

...и что получаем ? функция использует последнее значение _временной_ переменной...
чудеса...


Последний раз редактировалось Nox Noctis; 02.10.2002 в 01:13.