为Actionscript3实现了eval函数,可以在运行时解析执行一些脚本。其支持的脚本语言类似Javascript,可以定义变量和函数,也可以只运行一些简单的表达式
function test():void { // Compile the user library: var libCode:String = 'function sum(data:Array):Number {\n' + ' var ret:Number = 0;\n' + ' for each(var x in data) ret += x;\n' + ' return ret;\n' + '}\n\n' + 'function avg(data:Array):Number {\n' + ' return (data == null) ? 0 : (sum(data) / data.length);\n' + '}'; var userlib:Object = D.parseFunctions(libCode); // Use the library to execute dynamic code: var prog:String = 'var data = [ 1, 3, 5, 7 ];\n' + 'printf("Sum is: {0}", sum(data));\n' + 'printf("Average is: {0}", avg(data));\n'; D.eval(prog, null, userlib); } var six:int = D.eval('1 + 5') as int;
目前最新版本是1.1,在Adobe Flex3 和 Flash CS3 上测试通过