![]() |
Расстановка обработчиков из цикла
Есть много клипов mc1, mc2 ... mcN
Надо на них повесить обработчик. Если делать так: Код:
for (i=1; i<N; i++) {Т.е. флешка сохраняет динамичность кода в обработчике, подставляя туда не конкретное значение, а переменную i, которая по окончании цикла стала равной N. Проблему можно решить так Код:
trace(Number(this._name.slice(2))) |
Код:
for (i=1; i<N; i++) { |
Действительно, так техничнее
Код:
for (i=1; i<N; i++) { |
Я привел рабочий код, а ты написал уже нерабочий, зачем? Переменная mc создается, чтобы по сто раз не писать this['mc'+i] (что, кстати, в цикле будет медленно работать), не говоря уже о читаемости кода.
|
Не понял.
В исходнике определение переменной находиться ВНУТРИ цикла. var mc = this['mc'+i]; Где тут увеличение производительности? И зачем по сто раз писать this['mc'+i].i = i; когда в том и суть, что это пишется ОДИН раз? Читаемость - это субъективно. Для меня все var и прочие ":" менее читаемы. Если вместо двух строк используется одна и сразу видно что к чему, то что более читаемо? Ошибка лишь в пути обработчика: не mc.onPress, а this['mc'+i].onPress - это и есть по СТО раз? |
Ещё раз: твой приведенный код не будет работать. Он должен был быть таким:
Код:
for (i=1; i<N; i++) { |
Понял, если будет помимо onPress другие обработчики, то быстрее будет по ссылке.
|
| Часовой пояс GMT +4, время: 16:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.