注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

神魔破杜梓的叨叨堂

Programming every day!

 
 
 

日志

 
 
 
 

As3 脚本引擎  

2008-05-01 22:18:05|  分类: My Tech |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文转自不会飞的鱼的Blog

1、As3Eval简介

    这是一个由Tamarin衍生出的as3库,作者把Tamarin的思想融合到了as3的库中。支持as3和ES4两种格式的动态编译、运行,有AS3来解释AS3或ES4,是不是很神奇呢?

   这是一个不折不扣的AS3写的AS3脚本引擎。可以编译很多AS3代码,包括类、方法等。同时也可以融合JS和abc文件,进行多方面编程。

    这里是DEMO。此库提供在线源码源码下载,还提供编译好的SWC组件

 

 2、简单测试As3Eval

      首先我们新建一个Script类

package util.script
...{
    import com.hurlant.eval.ByteLoader;
    import com.hurlant.eval.Debug;
    import com.hurlant.eval.Evaluator;
    import com.hurlant.test.ILogger;
    
    import flash.utils.ByteArray;

    public class Script
    
...{
        
        public 
function eval(src : String) : void ...{
            
var evaluator:Evaluator = new Evaluator
                                                   
var bytes:ByteArray = evaluator.eval(src);
                                                   ByteLoader.loadBytes(bytes);
        }

        
    }

}

这样,我们就可以使用动态的脚本来工作了

比如令var str : String = "function test() : String {" + "return 'test';  " +"};";

 然后new Script().eval(str);

这样我们就eval了这个test方法

3、自定义外部方法

之后我们可以建立一个实现类,为了方便,我们选择在顶层包建立

package
...{
    
public class Util
    
...{

        
public static function print(str : String):void ...{
            trace(str);
        }

    }

}

然后我们来扩展实现这个test

new Script().eval(str + "  var temp =  test();  Util.print(temp)");

就相当于

function test() : String ...{
    
return 'test';
}


var temp = test();

Util.print(temp);

可以看出Util.print来自eval外部,但是测试通过,说明eval脚本引擎可以与外部类和方法进行沟通。

=========================================

那么还等什么,为脚本引擎发愁的各位,尽情地发挥自己的想象,享受动态脚本带来的好处吧。

关于深入as3eval,请继续关注tamarin系列文章

  评论这张
 
阅读(699)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017