1. MXML or ActionScript3
一开始以为Flex的界面设计也想HTML一样是基于标记语言的,在进一步学习之后觉得并不是这样。MXML更像JSF或ASP.NET一样的标签库,在编译后仍然是转换为ActionScript的。并且对于组件的开发,MXML并不能很好的支持。总的来说MXML是一种相对于ActionScript更简便更直观的开发方式。
2. ActionScript3 既不是JavaScript,也不是Java
ActionScript3可以说是既有JavaScript的动态性,又具有Java的面向对象特征。而它因为E4X的加入,有了自己特殊的魅力。在我对编程语言有限的了解中,ActionScript是我知道的对XML操作最简便的语言。
3. 组件时代
在Ajax开发中,是Dojo、YUI让我们看到JavaScript也能开发出精妙的组件,但是这种组件的开发难度是不言而喻的。Flex天生就是为组件而活着的,如果Adobe给你提供的基本组件还不能填饱你的创意,那么你完全可以亲自动创造一个。而制作组件不仅仅是提供更精彩的UI交互,这也是一种代码复用的方式。
4. 处处可见MVC
MVC恐怕是最常见、最实用的设计模式了。在Flex世界中已经可以看到两个MVC的框架:Cairngorm、RIAWAVE。
5. 与后端集成
Flex是前端的界面技术,而后端和数据库交互或大型运算依然需要依托Java、.Net、PHP、Ruby等语言。早在Flash 8的时候Adobe就提出AMF(Action Message Format)技术,即将Java等语言的对象转换为ActionScript对象的技术规范。AMF是将对象编译后作为2进制数据传输,比起WebService、HTTPService、XML等都有很多好处。在Adobe方面推出了Data Services 2,支持了AMF等功能,但是价格昂贵。在开源方面,PHP有专门支持的AmfPHP,另外WebORB同时支持.Net、Java、PHP、Ruby,PHP和Ruby是免费的。在Java方面就比较可怜了只有openAMF,至今文档依然很少,并且只支持AMF0,其它语言都有相关工具支持到AMF3。
我觉得以上总结的5点就是学习Flex的一条路径,在Flex文档方面中文文档实在少得可怜,这都让学习成本增加了不少,对于非Tech Fan的普通开发者可能还没到学习的最好时刻。