![]() |
|
||||||||||
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Есть много клипов mc1, mc2 ... mcN
Надо на них повесить обработчик. Если делать так: то при нажатии на любой из них будет показываться N, а не их номер (по идее i). Т.е. флешка сохраняет динамичность кода в обработчике, подставляя туда не конкретное значение, а переменную i, которая по окончании цикла стала равной N. Проблему можно решить так Но мне кажется, что можно как-нибудь проще и менее громоздко? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Я привел рабочий код, а ты написал уже нерабочий, зачем? Переменная mc создается, чтобы по сто раз не писать this['mc'+i] (что, кстати, в цикле будет медленно работать), не говоря уже о читаемости кода.
|
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Не понял.
В исходнике определение переменной находиться ВНУТРИ цикла. var mc = this['mc'+i]; Где тут увеличение производительности? И зачем по сто раз писать this['mc'+i].i = i; когда в том и суть, что это пишется ОДИН раз? Читаемость - это субъективно. Для меня все var и прочие ":" менее читаемы. Если вместо двух строк используется одна и сразу видно что к чему, то что более читаемо? Ошибка лишь в пути обработчика: не mc.onPress, а this['mc'+i].onPress - это и есть по СТО раз? Последний раз редактировалось chingachgoog; 25.05.2007 в 15:22. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ещё раз: твой приведенный код не будет работать. Он должен был быть таким:
Тут уже дважды будет this['mc'+i], ухудшающее читабельность и производительность (объявление переменной и обращение по ссылке быстрее, чем многократное прямое обращение, не говоря уже о читаемости). |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|