![]() |
some_mc.someAction = someFunction как задать динамическое имя someFunctoin ?
на самом деле код такой
Код:
bm.onPress = mainonPressКод:
mainonPress = function () {как задать динамическое название функции |
eval()
|
BBOY Ильич спс
|
Код:
bm.onPress = this[somePeremen+"onPress"]; |
спасибо я думал что eval не выход но забыл про this
|
чем плох eval()?
|
Тем же, чем и плохо писать код на кнопках. Не солидно ;)
|
Цитата:
|
спс =)
|
Гдето читал что eval() хоть и древний, но выполняется значительно быстрее конструкций типа this["bla_bla" + someWhat].
to __etc: И он таки позволяет создавать переменные с "составным именем" ) : eval ("var" + i) = "someWhat"; равносильно this["var"+i] = "someWhat"; |
Цитата:
Цитата:
Код:
this.createEmptyMovieClip('mc0', 0); |
согласен:
eval ("var" + i) = "someWhat"; не равносильно this["var"+i] = "someWhat"; я в свое время недочитал хелп ;) "In Flash 5 or later, you cannot use eval() to dynamically set and retrieve the value of a variable or instance name..." т.е. в 5 и выше уже не работает, сорри... |
eval() по описанию ECMAScript должен быть вызовом компайлера, т.е. передать строку компайлеру и скомпилировать ее. Т.как у флеша архитектура другая и весь код компилируется до исполнения, а компайлер в плеере вообще отсутствует, то реализация этой функции - в принципе не возможна. Ну и глядя на то, что АС все дальше и дальше уходит от использования ECMAScript - лучше действительно перестать пользоваться тем, что, наверняка не будет реализовано в последующих версиях (eval(), кстати, отсутствует в АС3, и добавлять его туда скорее всего не будут =)
|
| Часовой пояс GMT +4, время: 16:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.