AsWing是一套UI组件框架,纯ActionScript开发的组件框架(有ActionScript2和ActionScript3版本),也包含一些常用的工具类,目的是让Flash/Flex开发人员方便的开发出想要的应用程序界面。由于ActionScript2的时代已经慢慢过去,这里我们只针对ActionScript3版本来介绍。
自从Flex2,A.I.R发布以来,由于其开发效率高、表现能力强等特点,采用Flash/Flex平台开发应用程序的需求越来越多,同时,RIA的兴起,这些需要一套成熟的UI组件框架。
AsWing早在ActionScript2时代就已经发展成熟并成功应用于多个大型商业案例。它是成熟的Java Swing框架的MVC架构在ActionScript上的轻量级实现,并且根据ActionScript语言的特性、Flash显示元件的特性对架构的细节进行了调整,集Swing框架和严谨和ActionScript的灵活于一体,脱胎于Swing但是优于Swing。其最新的ActionScript3.0版本更是经过改进设计,增加了SkinBuilder, GuiBuilder等多个周边工具并且支持了A.I.R。
更重要的是,AsWing是基于BSD协议发布的开源软件,这意味着您可以免费获得以上的所有功能并且您有权力根据自己的需要自由地对其进行修改。
如果您正在开发的基于Flash/Flex ActionScript的应用程需要高灵活性、高效率的用户界面,那么AsWing就是你最好的选择。
假如您正在开发基于Flash平台的大型游戏或者虚拟社区,AsWing更您是绝佳选择。其所有组件均继承自Sprite,并且无任何不兼容覆盖,因此你可以方便的把组件添加到任何显示元件上面,或者把任何显示元件添加到组件上。比如你想在游戏中的人物角色头上加一个按钮,或者你需要在一个组件容器中添加一断演示动画,只需要调用addChild添加即可。AsWing组件和普通显示元件互不干扰可同时工作,拥有充分的灵活性。
Flex Framework(下面我将使用Flex简称Flex Framework)是Adobe官方开发的应用程序框架,它不仅包含UI组件,还包括其他工具,这里我们不说AsWing和Flex Framework哪个更好,只是简单的把它们的不同处列出来方便大家自己比较。
AsWing | Flex | |
架构模型 | 更多的采用MVC;AsWing通过布局管理器来布局,布局与容器分离; | 通过不同的容器和组件属性来进行布局;也使用MVC,但仅限于一些比较大型的组件; |
组件数量 | 组件数量略少于Flex;拥有JTable并支持自定义Cell渲染,能满足大部分表格需求;AsWing团队已经开始计划开发表单类,以满足对于复杂表单需求的用户。有不少组件AsWing拥有而Flex没有,比如Frame,再比如Flex没有混色器,只有颜色选择器,而AsWing两者都有; | 组件数量略多于AsWing;Flex3拥有AdvancedDataGrid这样的超级组件; |
键盘控制 | 有焦点控制器,键盘控制选择(采用Tab切换焦点,上下键改变列表选择等);支持Key Acceleration和Key Mnemonic; | 有焦点控制器,键盘控制选择(采用Tab切换焦点,上下键改变列表选择等); |
组件观感 | 通过LookAndFeel类和ComponentUI来实现和改变组件观感,通过SkinBuilderLAF可以方便的通过更改图形资源来改变外观,不支持CSS;可以运行时改变组件外观; | 通过相关外观类的实现来改变外观,并可以通过CSS来设置组件外观;可以运行时改变组件外观; |
开发环境 | 可通过Flash CS3或者Flex编译器编译,通过ActionScript3进行程序设计; | 只能用Flex编译器编译,同时使用MXML和ActionScript3进行程序设计(也就是说除了掌握ActionScript3,你还得掌握MXML); |
与其他工具配合 | 拥有SkinBuilder制作外观主题,GuiBuilder进行界面布局并生成ActionScript源代码; | 拥有FlexBuilder的Design界面进行界面布局,也有基于CSS的外观设置工具; |
开发相关 | 组件可与普通显示元件无缝结合,比如Flash IDE制作的SimpleButton或者一段动画可以和组件相互包容; | 组件不能被随意放置到普通显示元件上面,如果是一段动画或者SimpleButton; |