[tamarin系列之6] tamarin外篇---As3Eval

AS3Eval是一款由Tamarin派生出的AS3库,支持AS3和ES4的动态编译与运行。该引擎能解释并执行AS3及ES4代码,包括类与方法等,并可融合JS与abc文件进行多方面编程。本文介绍如何使用AS3Eval进行简单的脚本评估及自定义外部方法。

1、As3Eval简介
 这是一个由Tamarin衍生出的as3库,作者把Tamarin的思想融合到了as3的库中。支持as3和ES4两种格式的动态编译、运行,有AS3来解释AS3或ES4,是不是很神奇呢?
 这是一个不折不扣的AS3写的AS3脚本引擎。可以编译很多AS3代码,包括类、方法等。同时也可以融合JS和abc文件,进行多方面编程。
 这里是DEMO。此库提供在线源码源码下载,还提供编译好的SWC组件 
2、简单测试As3Eval
 首先我们新建一个Script类
 1.package util.script {
 2. import com.hurlant.eval.ByteLoader;
 3. import com.hurlant.eval.Debug;
 4. import com.hurlant.eval.Evaluator;
 5. import com.hurlant.test.ILogger;
 6. import flash.utils.ByteArray;
 7. public class Script {
 8. public function eval(src : String) : void {
 9. var evaluator:Evaluator = new Evaluator
 10. var bytes:ByteArray = evaluator.eval(src);
 11. ByteLoader.loadBytes(bytes);
 12. }
 13. }
 14. }
 这样,我们就可以使用动态的脚本来工作了
 比如令var str : String = "function test() : String {" + "return 'test'; " +"};";
 然后new Script().eval(str);
 这样我们就eval了这个test方法
 3、自定义外部方法
 之后我们可以建立一个实现类,为了方便,我们选择在顶层包建立
 1.package {
 2. public class Util {
 3. public static function print(str : String):void {
 4. trace(str);
 5. }
 6. }
 7. }
然后我们来扩展实现这个test
new Script().eval(str + " var temp = test(); Util.print(temp)");
 就相当于
 1.function test() : String {
 2. return 'test';
 3.}
 4. var temp = test();
 5. Util.print(temp);
 可以看出Util.print来自eval外部,但是测试通过,说明eval脚本引擎可以与外部类和方法进行沟通。
 =========================================
 那么还等什么,为脚本引擎发愁的各位,尽情地发挥自己的想象,享受动态脚本带来的好处吧。
 关于深入as3eval,请继续关注tamarin系列文章


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/isaaq/archive/2008/04/27/2334743.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值