![]() |
Интересный случай...
... как тут быть
for(j=0;j<texts.length;j++){ this["button"+j].onRelease = function() { num=j; } }trace(_root.action_man); вот такой кодик. поясню - у меня неизвесное колво кнопок (=texts.length). я пытаюсь обработать нажатие на них вот таким вот образом. но, фуфел - трэйс выдаёт всегда 5. на какую бы кнопку я не нажимал. как бы подругому это сделать? вариант - написать код в Экшене самой кнопки - не катит. :confused: :rolleyes: |
ох.. парит меня. вот так я хотел написать:
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. |
Код:
function setonrelease(subj,a){ |
TSS всегда рядом. :)
|
вариант, который предложил TTS "стилистически" правильнее, но работать тоже не будет :)
все присвоения, которые вы делаете в теле создаваемой функции произойдут уже в момент ее создания... то есть сколько нужно раз тем переменным присвоится какое-то значение, но потом, при выполнении онРелизов - желаемого эффекта не будет... Код:
function setonrelease(subj, a) {и вообще - с динамическим созданием функций надо работать оч аккуратно... мы тут спорили как-то с Джоном по этой части... ...и пришли к выводу, что это может работать самым неожиданным образом :)) например: Код:
function a() {берем переменную, создаем функцию, которая использует ее значение (а указателей-то на строковые и числовые переменные во флэше как-бы нет вообще-то...) а уже _после_ создания функции меняем значение переменной... ...и что получаем ? функция использует последнее значение _временной_ переменной... чудеса... |
for (j=0; j<texts.length; j++) {
this["button"+j].num = j; this["button"+j].onRelease = function() { trace(this.num); }; } |
вот, видите ? :)
УильямБрэдберри тоже так считает :) значит вы на правильном пути :)) а использовать или не использовать функцю для создания онРелизов - зависит от слсжности конструкций в конкретном случае... просто как удобнее :) |
| Часовой пояс GMT +4, время: 21:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.