![]() |
|
||||||||||
|
|
|
|||||
|
... как тут быть
for(j=0;j<texts.length;j++){ this["button"+j].onRelease = function() { num=j; } }trace(_root.action_man); вот такой кодик. поясню - у меня неизвесное колво кнопок (=texts.length). я пытаюсь обработать нажатие на них вот таким вот образом. но, фуфел - трэйс выдаёт всегда 5. на какую бы кнопку я не нажимал. как бы подругому это сделать? вариант - написать код в Экшене самой кнопки - не катит. ![]()
__________________
Генч. |
|
|||||
|
ох.. парит меня. вот так я хотел написать:
for(j=0;j<texts.length;j++){ this["button"+j].onRelease = function() { num=j; _root.action_man = j; } }trace(_root.action_man); и равно всегда не 5ти, а texts.length.
__________________
Генч. |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
|
|||||
|
TSS всегда рядом.
![]()
__________________
Генч. |
|
|||||
|
don't panic!
Регистрация: 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);
}
и вообще - с динамическим созданием функций надо работать оч аккуратно... мы тут спорили как-то с Джоном по этой части... ...и пришли к выводу, что это может работать самым неожиданным образом :)) например: function a() {
var p = "!!!!"
var b = function () {
var test = p
trace(test);
};
var p = "????"
return b;
}
a()();
берем переменную, создаем функцию, которая использует ее значение (а указателей-то на строковые и числовые переменные во флэше как-бы нет вообще-то...) а уже _после_ создания функции меняем значение переменной... ...и что получаем ? функция использует последнее значение _временной_ переменной... чудеса... Последний раз редактировалось Nox Noctis; 02.10.2002 в 01:13. |
|
|||||
|
Мастер Цифрового Облика
|
for (j=0; j<texts.length; j++) {
this["button"+j].num = j; this["button"+j].onRelease = function() { trace(this.num); }; } |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
вот, видите ? :)
УильямБрэдберри тоже так считает :) значит вы на правильном пути :)) а использовать или не использовать функцю для создания онРелизов - зависит от слсжности конструкций в конкретном случае... просто как удобнее :) |
![]() |
Часовой пояс GMT +4, время: 23:09. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|