Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 11.12.2001, 12:54
AlexSm вне форума Посмотреть профиль Отправить личное сообщение для AlexSm Найти все сообщения от AlexSm
  № 1  
AlexSm
 
Аватар для AlexSm

Регистрация: Aug 2001
Адрес: Москва
Сообщений: 275
Arrow Eval(txt)._x=.... Eval(txt+"._x=..."); Как выполнить строку?

Вопрос такой.
есть у нас Eval();
если есть мувик mc, то написав так:
txt="this.mc";
eval(txt)._x=100; // все работает.
command="this.mc._x=100";
eval(txt); // не работает.

А хочется так, сделать чтобы ЛЮБУЮ строчку можно было выполнить.
КАК это реализуется ?

Спасибо!

Старый 11.12.2001, 13:41
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 2  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
во-первых мона было и без евала написать
txt = this.mc;
это ссылкой называется

а команду евал не выполнит... а то это была б халява: динамически изменяемый текст скрипта...

евал только по имени переменной получает ее значение... а ты хочешь сделать аналог джскриптового document.write()

извиняйте, братцы, бананьев нема

Старый 11.12.2001, 13:57
AlexSm вне форума Посмотреть профиль Отправить личное сообщение для AlexSm Найти все сообщения от AlexSm
  № 3  
AlexSm
 
Аватар для AlexSm

Регистрация: Aug 2001
Адрес: Москва
Сообщений: 275
По умолчанию Хачу БаНанОв ! ! !

Как енто бананОв немА!
Хачу бананов!

Хачу динамически исполняемый текст. А что?
Почему нельзя?
Может кто всетаки придумал как енто сделать ?

Старый 11.12.2001, 14:08
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 4  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
ну, при определенных познаниях в черной магии...

Старый 11.12.2001, 15:01
AlexSm вне форума Посмотреть профиль Отправить личное сообщение для AlexSm Найти все сообщения от AlexSm
  № 5  
AlexSm
 
Аватар для AlexSm

Регистрация: Aug 2001
Адрес: Москва
Сообщений: 275
По умолчанию Калдуй баба калдуй дед! Трое сбоку, ваших нет!

Черная магия гворишь понадобится ?
А может можно ActionScriptom ограничится ?

Старый 11.12.2001, 15:05
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
что значит ограничится ?! а ActionScript это по-твоему что ?

Старый 11.12.2001, 15:29
AlexSm вне форума Посмотреть профиль Отправить личное сообщение для AlexSm Найти все сообщения от AlexSm
  № 7  
AlexSm
 
Аватар для AlexSm

Регистрация: Aug 2001
Адрес: Москва
Сообщений: 275
Thumbs up Action Script - Белая магия. ;)

Action Script - Белая магия.

Посмеятся кончно есть над чем, но может есть у кого идеи поконкретней, а то нас в ОффСникерсе обвинят

Итак вопрос к знатокам Белой и Черной магии, Она же ActionScript:

Как заставить выполнится произвольную текстовую переменную ?

Старый 11.12.2001, 15:31
vol вне форума Посмотреть профиль Отправить личное сообщение для vol Найти все сообщения от vol
  № 8  
vol

Регистрация: 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

Старый 11.12.2001, 15:45
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 9  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
ну давайте напишем транслятор ActionScript'а на ActionScript'е...

...уколдуетесь, друзья мои

Старый 11.12.2001, 15:51
vol вне форума Посмотреть профиль Отправить личное сообщение для vol Найти все сообщения от vol
  № 10  
vol

Регистрация: Jan 2000
Сообщений: 216
По умолчанию Вот, и я о том же!

Можно и ухо через (пардон) задницу чесать, но стоит ли?
__________________
Ударим флэшем по бездорожью и разгильдяйству!

VOL

Создать новую тему   Часовой пояс GMT +4, время: 18:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:20.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.