守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 1645|回复: 1

[移动平台] 全新AS3平台脚本解释库Ascript发布,与AS3完美结合!完爆lua!

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51756
    钢镚
    1422

    开源英雄守望者

    发表于 2016-4-5 08:57:51 | 显示全部楼层 |阅读模式
    最近,
    由AS3业界内的大牛dayu编写的
    脚本解释性类库Ascript(ascript-as3)最新版本已经发布!
    最重要的是完全开源免费!


    与AS3语法相似度接近100%.而且可以无缝集成。
    用这个类库编写的脚本可以解释性执行,也可以在as3中编译执行。

    嗲,~ 这是不是吊爆了!!看到这里,小伙伴们都惊呆了~undefined


    应用领域:
    (脚本帮助我们实现免编译动态更新程序功能)
    手游动态配置,战斗系统,任务系统,程序功能动态调用,功能免编译更新,。。。。
    功能实实预览, UI编辑实时预览等等。。。等等。。。等等。。。(此处省略N个字)
    只要你能想到的动态免编译功能,脚本都能帮你完成!!!。。。。


    对比Lua:
    AS3平台也有炼金术版的Lua库,笔者试用并不理想,
    第一)解释效率低下,运行速度慢
    第二)占用内存,读取脚本沉余字符过多
    第三)使用库后主文件体积增加300K甚至更多!Ascript更加轻量!
    第四)你需要另外学习Lua的语法,对于AS3程序员来说增加了额外的学习成本
    第五)Ascript的语法与AS3相似度100%,你会AS3就能编写脚本,能使用大部份(100%)AS3的原生API。
    第六)Lua脚本与AS3之间的变量传递代码量过多,而且容易出现问题,而Ascript完美实现相互调用。支持AIR。
    第七)更多特性暂不做一一评测,大家使用后便知优点。

    这里并不是说Lua不好,只是说在AS3开发环境下,两个脚本之间的使用对比情况,希望大家不要误解这个对比结果。






    源引官方说明如下:

    一个as3写的脚本解释器,动态解释执行as3代码。http://ascript.softplat.com/ 什么是Ascript
    Ascript是一种解释型脚本语言,用as3实现,并且能和as3无缝结合的一种动态执行的脚本,无需编译.即可执行。
    Ascript并不想帮你编写大量的代码,Ascript让你用少量的代码解决动态数据和动态逻辑配置等问题。
    Ascript是一个小巧而嵌入式的语言,可以帮助你测试自己的API,语法和其母语as3基本相同,会方便任何熟悉此类语言的人轻易使用,实际上,这个语言能直接运行大部分as3类.


    AScript起航AScript的使用非常简单,因为它和ActionScript?几乎完全一样,并且运行于as上。 关于如何运行AScript和初始化脚本引擎,请参考HowtoUse
    变量局部变量AScript的变量声明方式如下
    1. var aaa=2;AScript本身是不对变量类型进行检查的,但是可以在声明变量的时候声明类型,比如
    2. var aaa:int=2;AScript会自动忽略冒号后面的类型。虽然AScript不会对代码进行类型检查,但是仍然建议您写上变量的类型,由于AScript和as几乎一摸一样,所以通常情况下可以使用flash builder或其他ide书写代码,写上变量的类型可以减少警告,并可以利用ide的类型检查进行一定程度上的检查。
    复制代码


    全局变量可以在as3的代码中指定全局变量,然后在AScript里调用。如下:
    1. Script.vm.aaa=12;
    2. Script.execute("trace(aaa);");//输出为12和as一样局部变量如果和全局变量重名会优先调用局部变量。
    3. Script.vm.aaa=12;
    4. Script.execute("var aaa:int=2;trace(aaa);");//输出为2还有一种特殊的方式可以创建全局变量。Script.init接受的第二个可选参数是一个AScript类文件(关于AScript的类的详细信息可以参考本章余下的章节)。脚本引擎初始化的时候会自动创建该类的实例,并且将Script.vm指向这个类的实例。在类中定义的变量也就成了全局变量。
    5. Script.init(this,"class Cla{var aaa=12}");
    6. Script.execute("trace(aaa);");//输出12
    7. trace(Script.vm.aaa);//输出12运行上面的代码,可以在output窗口看到一段描述文字,如下:
    复制代码


    脚本类:Cla解析完成,可以创建其实例了
    脚本类:__DY解析完成,可以创建其实例了这表示脚本引擎的初始化。
    函数下面的例子定义了一个AScript函数Add,并在ActionScript?中调用它。
    1. Script.declare("function Add(a,b){return a+b;}");
    2. var func:Function=Script.getFunc("Add");
    3. trace(func(200,200));//将输出400类AScript的特色之一是可以定义类。并且定义类的方式和as3非常相似。 下面的代码定义了一个AScript类。
    4. class Cla{
    5.    var aaa=12;
    6.    function Add(){
    7.       aaa++;
    8.    }
    9. }
    复制代码


    同变量一样,你可以给使用as3的类修饰符,但是AScript会自动忽略这些类修饰符。在AScript类里定义的变量aaa默认是public的,并且不能修改。类中定义的方法也一样。

    最后,当然是给出类库开源地址,供使用或学习!
    感谢dayu 为我们编写了AS3平台好用的脚本解决方案!!再次感谢作者!
    好的免费的东西希望大家一起多多推广,分享和使用!
    Share:SunnyBoxs

    【开源地址】http://code.google.com/p/ascript-as3/



    来源:http://bbs.9ria.com/thread-266062-1-1.html

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    评分

    参与人数 1威望 +2 金币 +20 收起 理由
    shawn00 + 2 + 20 屌爆了

    查看全部评分

    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-9-12 17:23
  • 签到天数: 383 天

    [LV.9]以坛为家II

    21

    主题

    57

    帖子

    4万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    1066
    贡献
    0
    金币
    6358
    钢镚
    21
    发表于 2016-4-25 09:42:02 | 显示全部楼层
    我們有用這個~開源還可以改成自己公司特殊用
    守望者AIR技术交流社区(www.airmyth.com)
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-10-23 01:01 , Processed in 0.050605 second(s), 37 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表