Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Выполнение команды, заданной строковой переменной. (http://www.flasher.ru/forum/showthread.php?t=98623)

Torero 17.07.2007 19:20

Выполнение команды, заданной строковой переменной.
 
Есть строковая переменная str="mc.lineTo(100,100)". Есть-ли способ выполнить команду в ней содержащуюся?

etc 17.07.2007 19:29

Распарсить и выполнить.

Torero 17.07.2007 19:34

Смотрю хелп по XML - не вижу.
Какими командами это делается?
---
если через fistChildNode, то как выполнить?

etc 17.07.2007 19:40

Написать парсер, который будет парсить и выполнять такой код.

Torero 17.07.2007 20:00

Кажись дошла суть ответа. Вопрос в том, что текстовой переменной может быть задан набор произвольных(не однотипных) команд различным объектам. Строка формируется динамически.

etc 17.07.2007 20:03

Тогда пиши свой интерпретатор. :D
Задача в общем случае имеет решение оооооочень нетривиальное. Все равно что писать интерпретатор JavaScript.

Torero 17.07.2007 20:23

чтоб тему новую не создавать....
задача, собственно, следующая: экземпляр класса создается динамически и, при создании получает набор свойств объекта, которые изменяются, скажем, при onRollOver. Набор свойств лежит в массиве. Самое простое решение - при каждом onRollOver обращаться к массиву и менять у объекта те свойства, которые в нем указаны. Проблема в том, что объектов много, событий много и свойств, изменяемых при этих событиях тоже много - хотел избежать необходимости постоянно перерывать массив.
Для наглядности: prop_arr - массив свойств объекта some_mc, delta_arr - массив изменения этих свойств при onRollOver;
Код:

prop_arr=["_x","_yscale","_xscale","_alpha"]
delta_arr=["-30","20","20","10"]

Хотел создать строковую переменную, затолкнуть в нее все необхдимые команды и выполнять ее при событии - не сложилось.:)
Можно как-нибудь 1 раз динамически прописать onRollOver для данного объекта и постоянно не обращаться к массиву?


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

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