# ActionScriptForUnity **Repository Path**: jianyumofa/ActionScriptForUnity ## Basic Information - **Project Name**: ActionScriptForUnity - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2015-02-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ###申明 此项目是c#写的一个ActionScript 3.0解析器 因为初版本的词法分析性能问题,所以此版本是基于Apricot大神的Scorpio做的修改,所以大部分API对于Scorpio都没有变化 在Scorpio的基础上加入了面向对象的概念,截止目前,实现了类、包、静态、方法、变量、new等功能(注:年后的最新版已经和Scorpio有了很大的差距,从底层架构开始接近as3) 未完善的功能有:方法参数默认值、int/Number默认值、delete关键字、undefined关键字、NaN关键字、as/is关键字、for in循环、命名空间、setTimeout等系统方法、 完整的RunTime、相关Unity插件 ---------------------------------------------------------------------------------------------------------------------- ###引擎简要说明 1、依托Unity3d引擎,可以利用as3编写出高性能、多平台的游戏,用as3编写出高性能的3D游戏不再是那么遥不可及 2、在原版ActionScript 3.0的基础上加入了调用/实例C#原生类的功能,大大丰富了ActionScript 3.0的功能支持 3、Unity3D的热更新在手机平台一直是头疼的问题,在现有的ulua、L#基础上增加了as3的解决方案 ---------------------------------------------------------------------------------------------------------------------- ###用ActionScript 3.0做脚本语言相比较有如下优势: 1、对flash、js、java等程序员友好,尤其是flash的大大小小的类库都可使用 2、有flashbuilder、flashdevelop等这些成熟的ide ---------------------------------------------------------------------------------------------------------------------- ###用法示例 https://git.oschina.net/jianyumofa/ActionScriptForUnity/blob/master/Demo.cs ###FlashUI框架 https://git.oschina.net/jianyumofa/FlashUIForUnity ---------------------------------------------------------------------------------------------------------------------- ###2015年3月5日 彻底修复super的bug,加入getTimer、toString等一些基本的工具函数,加入as3示例工程 加入完整的鼠标事件支持 修复枚举获取不到的bug ###2015年3月3日 重构计划,已经基本完工了,再进行几天的测试即可发布 加入一些基本的显示对象 ###2015年3月2日 为了彻底面向对象,全面整改底层,已经和Scorpio有了很大差别,更加的接近as3的机制。例如变量作用域,现在和as3一样了。 ###2015年2月12日 修复数组长度获取的bug 修复继承所得属性必须this才能获取的bug 修复属性不赋值也不为null的bug 修复构造super用法的的bug 修复类静态属性获取不到的bug 修复继承其他的一些问题 修复静态方法内实例化对象结果为null的bug ###2015年2月10日 修改new和强制转换冲突的bug 修改String库,现在支持String(强制转换)、new String("") 加入Array类型,修改String的类型,原来是方法现在是类 加入Number类型、加入Object类型、加入typeof 加入uint、int支持 ###2015年2月9日 修复带类型的参数无法使用的bug 加入get/set的支持 加入强制转换支持 修复foreach里面定义变量不能指定类型的bug 修复foreach的格式不对的BUG,因为在as3中的格式是for each(中间有空格) 修复前缀带get、set函数执行错误的bug 加入Undefined支持,加入String基础类型,并添加charAt、charCodeAt2个基本函数 修复不存在的属性和null比较返回false的BUG ###2015年2月6日 加入继承、方法重写、父方法调用 修改注册函数,方便以后加入ScriptClass 修复循环语句里面return无效的BUG 重写ScriptTable的ToString,现在可以打印出类/对象的类型 ###2015年2月5日 加入import支持 修改使用流程,现在是先注册类,再运行 因为as3的类也算是对象,所以暂时用指令代替注册,后续不排除加入ScriptClass 加入数组支持,暂时提供如下方法 push、splice、sortOn、shift、pop、reverse、indexOf 提供如下属性 length 具体用法参照Adobe帮助文档的Array类:http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/Array.html 修改foreach的用法,现在和as3的用法一样 修改this,现在能正确的指向本对象 修改for的用法,现在圆括号内可以用var 修改使用C#类的方法名importType、genericType等 修改全局方法print的方法名为as3中的trace 修复若干BUG ###2015年2月4日 完成原型 ---------------------------------------------------------------------------------------------------------------------- 附:Scorpio是类似js脚本的解释器、Apricot的原版Scorpio解释器地址:https://github.com/qingfeng346/Scorpio-CSharp