![]() |
var eto = "txt = qwerty";
Как кусок кода, вложенный в переменную как "строка", заставить исполниться? В глобале это означает - может ли ActionScript в момент выполнения менять свой код? Я пробовал eval(eto); - но, увы - не фунциклирует. Хотя в окне Output при выводе переменных - показывает правильно. Речь о 5Flash. :confused:
|
Зачем ? :p
|
все пашет...
например для этого: eval("_root."+NewName+".url")=url; //не пашет в MX хотя можно и так написать: set("_root."+NewName+".url",url); //пашет в MX да во многих вещях это можно применить... |
2 Armen Khanoyants
Я имел ввиду не сохранение в переменной значения другой переменной, или конкаткнации значения и имени, а именно части исполняемого кода, прим. qwe ="with(asdf){gotoAndPlay(2);}"; // а потом eval(qwe); // что я думал будет равносильно: with(asdf){gotoAndPlay(2); но почему-то не работает. Как написать, что-бы заработало? |
ОФФТОП
кто вас всех, нафих, научил в левой части выражения писать EVAL ? есть же this[], вот его и юзать нуно. |
2uri-uri вишь ли какая хитрость...
ты хочешь запихать в текстовую внешнюю строку название функции вместе с аргументами... а тут заморочка такая, что они (твои функции) инициализировываются во время компиляции кода... но выход хитрый все же есть... хэндлер (т.б имя) функции можно выносить за пределы флэша... допустим есть файл text.txt в нем: txt=_root.gotoAndStop:2 и есть флэшка с двумя кадрами в руте (в первом stop();) и с мувиком, а на нем код: onClipEvent (load) { this.loadVariables("text.txt") } onClipEvent (data) { trace(txt) a = txt.split(":")[0] b = txt.split(":")[1] this[[a](b)]; } ЗЫ: как грится - "разделяй и юзай!" (Юлий Цезарь) |
2УильямБрэдберри
угу... Целый Юзарь... :D только вопрос был чуть-чуть не в этом мне кажется... 2uri-uri с методами объекта все пройдет на ура: пишем например любой_муви_клип[название_метода](параметры_функции); ...то есть обычное обращение к ассоциативному массиву ;) другое дело если пытаться запустить (скомпилировать по сути) код в процессе выполнения программы (что пытался сделать автор темы)... во флэше это невозможно... это вам не document.write(...) которым можно скрипт набить находу (джаваскрипт-то вообще _не компилируется_ в отличие от ActionScrip'а)... :) |
Можно... все. Но сложно. И не стоит. Хотя. Интереса ради. Все таки можно.
|
Цитата:
уж проще (наверное ;) ) выдрать компилятор из флэша и положить его рядом с эсвээфником, а потом фскоммандой передавать ему строку, которую надо откомпилировать... мм... или через фласм это как-то завернуть ?.. зы: но все это напоминает высокоинтеллектуальный процесс забивания гвоздей микроскопом... |
А что? Я когда-то пытался сделать язык программирования во Флэш. Что-то вроде доисторического КуМир-а :) Но так и не предумал как сделать чтобы
str="function proba(a){ trace(a); }"; eval(str); proba("проба"); получалось :) |
| Часовой пояс GMT +4, время: 07:26. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.