![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 13.07.11]
[++1 13.07.11] Регистрация: Dec 2009
Сообщений: 42
|
Всем привет
вобщем у меня имеется некий редактор, но соль в том что в него нельзя подгружать им выдаваемый код, ну вобщем не в этом суть, конкретно нужно вот что:скажем имеется у меня вот такой текст-код: -- create_box(355, 345, 20, 20, 0, 0); create_robot(395, 355, 15, 1); square_tile(435, 305, 3, 3); -- Нужно чтобы когда я вставляю его в поле и нажимаю кнопку происходило некое действие в соответствии с кодом, например читаем первую строчку create_box(355,345,20,20,0,0); и определяем, и вызываем соответствующую функцию для этого - если create_box то например функцию create_box_da, причем с такими же параметрами как и указано в текстовой строке. Вот собственно вопрос, у кого-нибудь есть мысли как это проще всего реализовать? Заранее спасибо !11 |
|
|||||
|
[+3 18.04.11]
Регистрация: Dec 2010
Сообщений: 342
|
отредактируй свой пост и поясни нормально, что ты хочешь получить.
|
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
обыкновенный разбор строки нужен
навскидку: //ассоциируем идентификаторы функций с их названиями во флеше private var functions:Object = { create_box:create_box_da //и т.д. } private function create_box_da(...args):void {} //твоя функция //выполняем ф-цию для каждой строчки текст-кода private function execute(string:String):void { var func:Function = functions[getFuncNameFromString(string)]; var args:Array = getArgsFromString(string); func.call(this, args); } private function getFuncNameFromString(string:String):String { var index:int = string.indexOf("("); return string.slice(0, index + 1); } private function getArgsFromString(string:String):Array { var index1:int = string.indexOf("("); var index2:int = string.indexOf(")"); var subString:String = string.slice(index1 + 1, index2); return subString.split(","); } и сам разбор строки можно сделать другими алгоритмами
__________________
low + |
|
|||||
|
[+1 13.07.11]
[++1 13.07.11] Регистрация: Dec 2009
Сообщений: 42
|
DZHETIGAPA, зачем его редактировать? А получить нужно, я же объяснил:
Допустим у меня есть текстовое поле и я туда ввожу фразу "create_box(355, 345, 20, 20, 0, 0);" (т.е. у меня есть текстовое поле с множеством таких фраз) и я хочу чтобы по нажатию кнопку это текстовое поле обрабатывалось, т.е. например определяем первую строчку и видим там create_box - то вызываем функцию create_box_da, с такими же параметрами как и в текстовой строчке. Добавлено через 1 минуту Jewelz, спасибо вроде то что надо буду разбираться, если что спрошу если что-то не понятно будет ![]() Последний раз редактировалось Scorp2008; 27.05.2011 в 17:51. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|