Storing functions with arguments as String
I need to store a function with arguments in one string.
Without arguments, you can simply do sth. like that:
functionName:String = "hello";
this[functionName]()
function hello():void{
"Hello, World";
}
But as soon as you introduce arguments it`s getting tricky.
I came up with this:
function getArgsFromFunction(_function: String): Array {
var argstart: int = _function.indexOf("(");
var argend: int = _function.indexOf(")");
var argstring: String = _function.substr(argstart + 1, argend - argstart - 1);
var args: Array = argstring.split(",");
return args;
}
function getNameFromFunction(_function: String): String {
var nameEnd: int = _function.indexOf("(");
var nameString: String = _function.substr(0, nameEnd);
return nameString;
}
var f:String = "showMessage(A,B)";
function showMessage(_args: Array): void {
trace(_args);
}
var _funct: Function = this[getNameFromFunction(f)];
_funct.call(this, getArgsFromFunction(f));
but its not very versatile, not very robust, and seems unnecessarily complicated.
Anyone know a quicker way to get this done?
