AsWing是什么?
AsWing是一套UI组件框架,纯ActionScript开发的组件框架(有ActionScript2和ActionScript3版本),也包含一些常用的工具类,目的是让Flash/Flex开发人员方便的开发出想要的应用程序界面。由于ActionScript2的时代已经慢慢过去,这里我们只针对ActionScript3版本来介绍。
为什么选择AsWing?
自从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。
- Java Swing架构的AsWing框架对于每一个java程序员来说都是非常容易学习的,这是世界上您能够找到的学习成本最低的ActionScript UI组件框架。
- AsWing使您可以在运行时动态地创建、更改和重新布局,甚至能够让您运行时变更组件的外观主题。
- 由于AsWing是纯代码实现的,使用起来极其方便,您只需把AsWing的源文件或者编译好的swc文件加入项目的class path即可使用,无需其他配置。
- GuiBuilder工具是让你可以像使用Delphi, VB那样的所见即所得的界面编辑界面。您可以使用GuiBuilder设计界面,然后自动生成界面的源代码。
- SkinBuilder是界面主题制作工具。你只需要修改主题包里面图片文件或者在Flash CS3里面修改元件图形,即可获得一套您自己的外观主题。
更重要的是,AsWing是基于BSD协议发布的开源软件,这意味着您可以免费获得以上的所有功能并且您有权力根据自己的需要自由地对其进行修改。
如果您正在开发的基于Flash/Flex ActionScript的应用程需要高灵活性、高效率的用户界面,那么AsWing就是你最好的选择。
假如您正在开发基于Flash平台的大型游戏或者虚拟社区,AsWing更您是绝佳选择。其所有组件均继承自Sprite,并且无任何不兼容覆盖,因此你
可以方便的把组件添加到任何显示元件上面,或者把任何显示元件添加到组件上。比如你想在游戏中的人物角色头上加一个按钮,或者你需要在一个组件容器中添加
一断演示动画,只需要调用addChild添加即可。AsWing组件和普通显示元件互不干扰可同时工作,拥有充分的灵活性。
AsWing特性
- 几乎所有组件均采用MVC架构实现,模型,视图,控制器分离,使得程序架构更加灵活稳定易改变。
- 拥有超过40个的通用组件,包括树,表格,混色器等大型组件均有完整的实现。
- 键盘导航控制,快捷键等完好的支持。
- 组件与普通Flash显示元件可以互相包含,可以把Flash IDE创建的SimpleButton包装成组件Button。
- 可运行时更改外观主题,可对整体组件、单种组件或单个组件更改外观。
- 组件库核心纯代码的实现,方便使用,同时兼容Flex和Flash编译器。
- 拥有辅助工具方便的制作外观主题和布局界面(SkinBuilder和GuiBuilder)。
AsWing与Flex Framework比较
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; |