在学习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为数据而生,它可以以大多数常见的格式、跟所有常见的服务器交互来接受数据。这包括本地和远程下载的XML、JSP、PHP、ASP还是ColdFusion你自己说了算。你可以通过HTTP或者SOAPweb服务器下载信息,甚至可以直接与Java服务器对象交互或者在线转换二进制数据。AdobeAIR能向SQLLite数据库读和写。如果你有个特别的back-end服务器,Flex也可能会用他们而且大多数情况下操作都很简单。
如果有框架中的一套优秀服务组件,多半你能够用几行代码就获取到你的数据,并且直接绑定到UI组件。如果你需要更多精细的控制,你也能够连接到二进制插口而且甚至下载文件(在FlashPlayer10)。
5.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应用可以迅速下载,而不用下载整个框架。
【编辑推荐】