|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Aug 2001
Адрес: Москва
Сообщений: 275
|
Eval(txt)._x=.... Eval(txt+"._x=..."); Как выполнить строку?
Вопрос такой.
есть у нас Eval(); если есть мувик mc, то написав так: txt="this.mc"; eval(txt)._x=100; // все работает. command="this.mc._x=100"; eval(txt); // не работает. А хочется так, сделать чтобы ЛЮБУЮ строчку можно было выполнить. КАК это реализуется ? Спасибо! |
|
|||||
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
во-первых мона было и без евала написать
txt = this.mc; это ссылкой называется а команду евал не выполнит... а то это была б халява: динамически изменяемый текст скрипта... евал только по имени переменной получает ее значение... а ты хочешь сделать аналог джскриптового document.write() извиняйте, братцы, бананьев нема |
|
|||||
Регистрация: Aug 2001
Адрес: Москва
Сообщений: 275
|
Хачу БаНанОв ! ! !
Как енто бананОв немА!
Хачу бананов! Хачу динамически исполняемый текст. А что? Почему нельзя? Может кто всетаки придумал как енто сделать ? |
|
|||||
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
ну, при определенных познаниях в черной магии...
|
|
|||||
Регистрация: Aug 2001
Адрес: Москва
Сообщений: 275
|
Калдуй баба калдуй дед! Трое сбоку, ваших нет!
Черная магия гворишь понадобится ?
А может можно ActionScriptom ограничится ? |
|
|||||
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
что значит ограничится ?! а ActionScript это по-твоему что ?
|
|
|||||
Регистрация: Aug 2001
Адрес: Москва
Сообщений: 275
|
Action Script - Белая магия. ;)
Action Script - Белая магия.
Посмеятся кончно есть над чем, но может есть у кого идеи поконкретней, а то нас в ОффСникерсе обвинят Итак вопрос к знатокам Белой и Черной магии, Она же ActionScript: Как заставить выполнится произвольную текстовую переменную ? |
|
|||||
Регистрация: Jan 2000
Сообщений: 216
|
Ну, сделать-то можно. Да захочешь ли?
Сделать можно все. Можно и это.
Пишем для начала жесткую функцию function doCommand(command){ clp="this.mc"; param="_x"; zn=500; eval(clp)[param]=zn; } Проверяем: docommand(command); Работает. Стал быть, остается проанализировать входную строку и выделить из нее имя клипа, наименование параметра, действие и значение ( в примере это все было зашито жестко). 1.Имя клипа. Хорошо, если в руте. Если где-то внутри? Если mc.mc1.mc2._x=100? Надо анализировать. Допустим, справились. 2.Параметр. _x, _y,_rotation и черт его знает, что еще. Ну, как правило, начинается с подчеркивания. Значит, все, что до него было - имя. mc.mc1.mc2. - имя (надо еще последнюю точку убрать).Все, что после и до действия - одного из довольно ограниченного набора символов - параметр. 3.Действие. Вычленяешь из строки оператор - это м.б. =,+.-,++.--.>>, далее - везде. 4.значение. Все, что от строки останется. Делаешь оператор сравнения по выбранной подстроке действия и переписываешь самое последнее выражение в функции - напр, if (deistvie=="="){eval(clp)[param]=zn} else if deistvie=="*="){eval(clp)[param]*=zn} else и т.д., и т.п. Всего-то делов - перебрать все возможные варианты. И все это роскошество вместо одного единственного варианта напрямую. Но - дерзай, этот путь работать будет. Такие вот бананы!
__________________
Ударим флэшем по бездорожью и разгильдяйству! VOL |
|
|||||
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
ну давайте напишем транслятор ActionScript'а на ActionScript'е...
...уколдуетесь, друзья мои |
|
|||||
Регистрация: Jan 2000
Сообщений: 216
|
Вот, и я о том же!
Можно и ухо через (пардон) задницу чесать, но стоит ли?
__________________
Ударим флэшем по бездорожью и разгильдяйству! VOL |
Часовой пояс GMT +4, время: 18:20. |
|
« Предыдущая тема | Следующая тема » |
|
|