请问ActionScript中如何执行一个字符串?

来源:百度知道 编辑:UC知道 时间:2024/06/15 01:58:17
比如
var n:String="trace(123)";
怎么把str里面的trace执行出来? 类似js中的eval()函数那样!
期待解答!
1楼。。能教育别人不代表你就会,等你会了再来教育别人也不晚吧,要装大侠可以去幼儿园,你的优势更大,我要的是答案,谢谢

一楼那个答得的确比较不靠谱。。。

楼主的问题,我觉得是不存在一个很完美的解决方案的,也就是说没有eval()的替代品。2.0以前Actionscript自己是有eval的,但到了AS3整个架构重新设计,eval就没了。我查了半天,网上大家对eval的替代品这个问题的公认的结论是无解。

不过AS3不是随便设计的,取消eval是有理由的,一方面是为了效率(AS3代码在编译期进行语法解析,执行的平台flash player是没有语法解析功能的,而你要做的简单说就是运行期语法解析),另一方面也是为了安全性(编译期无法确定要执行的语句的内容,就无法确定这个语句是否危险)。而且AS3跟以往的AS相比朝着静态语言的方向迈进了一大步,因此也丧失了一些动态语言特有的东西,可能这个eval就是个例子。但另一方面,Adobe决定取消eval的前提是AS3的功能能够完全覆盖eval的功能,也就是说不论你要做什么,不用eval肯定是能做到的,只不过要具体情况具体分析,不存在一个通用的解决方案。

下面是关于这个问题的一些讨论的链接,分别讨论了这个问题的不同方面,也就是eval在不同情况下的替代品,应该有对你的情况有用的信息吧:
http://www.colettas.org/?p=17
http://stackoverflow.com/questions/671277/eval-formula-in-as3
http://www.kirupa.com/forum/showthread.php?t=25