Тема: String>Function
Показать сообщение отдельно
Старый 26.09.2010, 16:10
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Пример вызова функции trace
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.utils.getDefinitionByName;
 
	public class SomeBaseClass extends Sprite
	{
 
		public function SomeBaseClass()
		{
			super();
			var str:String = "trace(\"Hello world!\")";
 
			eval(str);
		}
 
		private function eval(str:String):void
		{
			var brace1Index:int = str.indexOf("(");
			var brace2Index:int = str.indexOf(")");
 
			//+2 и -1 чтобы убрать кавычки
			var innerString:String = str.substring(brace1Index + 2, brace2Index -1);
			var command:Function = getDefinitionByName(str.substr(0, brace1Index)) as Function;
			command.call(this, innerString);
		}
 
	}
 
}
Писать парсер внутренних скобок, много аргументов разных типов и т.д. лень.