这里和大家分享一下Flex程序员必须知道的十件事,如果你是Flex程序员或者对Flex学习有兴趣,那么本文的介绍你一会让你有所收获。
Flex程序员必须知道的十件事
1.重新定义:Flex是web标准
MXML是Flex应用的标准语言,它允许开发人员开发应用程序架构,不仅包括表现层也包括classstructure。这对web设计类的人和后台开发的人来说很容易,因为MXMLmarkup与HTML很类似。同样的,Flex内的ActionScript与JavaScript也很有可比性,而且Flex使用web标准的CSS来控制表现层。它也是构建应用架构的好方法,因为语言的树形特性使它很好地融合了一个典型的应用container-component模型。因此,源代码易于发布,因为它不是一个二进制的IDE特定文件,而是适合人读的文本文件。
值得一提的是,MXML是ActionScript某种程度上的简约表示,后者是ECMA从属的脚本语言。这是因为MXML在编译时间转换为ActionScript3,因此即使没有用过和学过MXML,也完全可能使用ActionScript3来构建Flex应用。然而对许多应用而言,使用MXML结合ActionScript是常用的方法。
2.Flex是Flash,然后是别的什么
如果你对Flash一直以来的轻量级矢量动画和优良的用户界面很熟悉,你就不会对Flex感到陌生。Flex是在FlashPlayer基础上建立的,后者是所有Flash内容的引擎。所以,没有什么Flash能做到而Flex做不到的东西。
所有Flash中的显示编程、API画图和动画,Flex也完全可用。然而,Flex还为Flash应用提供了架构,提供一整套用于帮助开发者写出强大和可扩展应用的界面组件和容器。
3.Flex很能干
许多公司将他们的软件从Java移植到Flex。这是因为Flex能够提供许多跟Java一样的性能,如跨操作系统的"writeonce"能力和面向对象的架构,但Flex的包小得多而且可以下载许多额外包。Flex应用既能用于web端软件也能用于桌面端软件(与AdobeAIR)而且这样做可以利用一个单独的codebase。
由于Flex构建在处处可见的FlashPlayer之上,所以无论你写的是什么都能在安装了它的机子上运行,而且带有FlashPlayer9的电脑(大部分是能上网的机子)达到了高达90%的比率。FlashPlayer使你免于不同浏览器转换的弊病,使你的软件免于愚蠢的bug和冗长的代码,并且避免由于新浏览器的发布而重写代码,而且动??和音效在每台机子上都播放得一样好。当你为AdobeAIR写代码的时候,你就立刻拥有了一个跨操作系统的桌面应用,能够一举运行在MacOSX、Windows和Linux系统上。
4.Flex与服务器无关
Flex程序员应该知道Flex为数据而生,它可以以大多数常见的格式、跟所有常见的服务器交互来接受数据。这包括本地和远程下载的XML、JSP、PHP、ASP还是ColdFusion你自己说了算。你可以通过HTTP或者SOAPweb服务器下载信息,甚至可以直接与Java服务器对象交互或者在线转换二进制数据。AdobeAIR能向SQLLite数据库读和写。如果你有个特别的back-end服务器,Flex也可能会用他们而且大多数情况下操作都很简单。
如果有框架中的一套优秀服务组件,多半你能够用几行代码就获取到你的数据,并且直接绑定到UI组件。如果你需要更多精细的控制,你也能够连接到二进制插口而且甚至下载文件(在FlashPlayer10)。
5.Flex就是你想要的样子
Flex程序员应该知道Flex应用的默认界面是可以配置的。由于内核的可编程性皮肤,Flex应用可以被调整到你喜欢的样子——这儿那儿改改颜色、修改下透明度、改下UI控制的外形和尺寸,所有这些可以通过标准的CSS来实现。CSS并非一个需求,因为MXML允许开发者通过简单的标示来调整样式和皮肤。如果你使用FlexBuilder,你的应用就有一个完整的WYSIWYG编译器,你能借此制作和插入图形并且拥有所有为你编写的CSS。除此之外,Flex应用还有一堆主题布景,使得你只需要一行MXML代码就可以改变整个外观。
值得一提的是,Flex不像Java和JavaScript,它不从所在的操作系统继承UI。也就是说,一个运行在MacOSX的Flex应用不会有像Mac按键的按键,呼叫FlexAlert也不会呈现Macalert表。Flex有其内置的界面,但是如果操作系统的样子是你想要的,那也有一些主题可以让你很接近操作系统的样子。
6.Flex轻便快捷
由于构建于ActionScript3之上,所以Flex框架出奇地快。ActionScript3显著提高了初始化时间,内置对延迟实例化的支持作用也很明显。使用了一个全新的JIT(Just-in-Time)编译器,你的代码运行得会非常快。富数据可视化和***的动画可以不要动用用户的CPU来完成。由于之前的3D动画始终是个瓶颈,Flash10中的全新支持将解决这个问题。甚至还有图像的硬件加速器来充分利用现代的图形处理卡(显卡)。
尽管有人有争议,但Flex的确很轻。使用一套UI组件将肯定比从零做起的ActionScript代码大,但考虑到它们的强大,这些组件确实很小。实际上,使用一个AJAX框架构建的典型应用经常比一个小的Flex应用大。尽管FlashPlayer经常预装在电脑里,但它也不过是几个兆字节的下载。值得一提的是还有个叫做框架缓存(frameworkcaching)的新组件,能为框架组件取出相当部分的下载。这个特性能够在用户的电脑上存储标准的FlexUI组件,从而其他的Flex应用可以迅速下载,而不用下载整个框架。
7.无障碍的Flex
有一段时间,关于Flash能否为残障人士所用的争论很多,而且理由不少。Flash内容经常被误解为骨子里就不能让残障人士使用,但这种观点实际上是远离事实的。随着用户渴望得到的越来越多,Flash能够与屏幕阅读器“互动”。实际上,Flex框架的组件有一个很棒的辅助工具,可以为屏幕阅读器和键盘提供导航,大部分Flex开发者需要做的只是开启这个工具(默认选项是关闭的)。
与许多AJAX组件相比,Flex更有亲和力。这是因为HTML通过创建JavaScript框架,经常破坏许多本地的残障人士支持特性。相比较而言,Flex从已开始骨子里就内建了对残障人士的支持。
8.Flex是SEO兼容的
过去,在FlashPlayer上构建一个网址是搜索引擎***化(SEO)的梦魇。这是因为用来浏览web页面的软件通常“不认识”.swf文件,后者是Flex应用编译成的二进制文件。现代的搜索引擎最终加入了阅读.swf文件的功能,比如超链接和大量文本,这多少起了些作用。
然而,完全使用Flash/Flex构建网站的问题在于,不同网址的浏览关系比如site—tabs是不被搜索引擎理解的,引擎认为这只是一个单独的页面(也许有点文本)。考虑到Flex应用编译的方法,.swf的可读性变得更加困难。就在最近,Adobe针对搜索引擎机器人推出了一款特殊版本的FlashPlayer,它能够让引擎搜索得更加深入从而迅速返回***的搜索结果。然而如果SEO只是你的最初目标,那么完全使用Flash来构建网页是不可取的。使用HTML夹杂Flash内容才是更好的方法,或者也可以用HTML来构建主页,用Flash来构建某些部分。注意,MXML代码编译成.swf,这种标示搜索引擎是不认的。
9.Flex是免费的,开源的
Flex程序员应该知道Flex的整个框架的源代码是公开的,同样FlexSDK和FlexBuilder的每个copy也都是公开的。这意味着你可以从内部看到它们是怎么工作的,以及框架的debug过程,甚至你可以为个人用途而修改它们。Flex也是免费的——使用FlexSDK开发是免费的,也可以使用免费的mxmlc编??器来编译。不同于早期的版本,Flex也不再需要特殊的服务器。你可以轻易地创建一个编译应用并发布到你想要的服务器上。当然,如果你决定使用基于Eclipse的IDE开发,那么FlexBuilder的一个copy是付费的。但这个费用不高,而且这个最初的开发工具最近又降价了。
10.Flex易于学习
Flex,我敢说,很容易学。MXML非常易于理解,去除了用纯ActionScript开发的许多复杂的语法。如果你曾用过HTML和CSS,再学Flex你就已经算会了一半。一旦你学了MXML的基础,你就可以开始学习ActionScript来让你的应用更具交互性。Flex框架提供了一整套用户界面组件来加快开发过程,学习它们的基本使用也是非常简单的。
这确实很简单尤其是当你开始使用ASDocs时,后者是为Flex提供的文档。今天对任何编程语言来说,ASDocs都可能是最精细和简化的一套文档,这使得最初的开发环境——FlexBuilder,能够帮助你快速入手,并使你在Design模式下可视化地构建你的应用,让你使用手指(点击)即能完成最常见的任务。而且市面上有许多很好的书籍,既有适合编程绝对菜鸟的又有适合其他编程语言转到Flex的,林林总总。
【编辑推荐】