Flex中你最应该知道的10点-阿里云开发者社区

开发者社区> 开发与运维> 正文

Flex中你最应该知道的10点

简介: 1. 重新定义:Flex是web标准     MXML是Flex应用的标准语言,它允许开发人员开发应用程序架构,不仅包括表现层也包括class structure。这对web设计类的人和后台开发的人来说很容易,因为MXML markup与HTML很类似。
1. 重新定义:Flex是web标准

    MXML是Flex应用的标准语言,它允许开发人员开发应用程序架构,不仅包括表现层也包括class structure。这对web设计类的人和后台开发的人来说很容易,因为MXML markup与HTML很类似。同样的,Flex内的ActionScript与JavaScript也很有可比性,而且Flex使用web标准的CSS 来控制表现层。它也是构建应用架构的好方法,因为语言的树形特性使它很好地融合了一个典型的应用container-component 模型。因此,源代码易于发布,因为它不是一个二进制的IDE特定文件,而是适合人读的文本文件。

    值得一提的是,MXML是ActionScript某种程度上的简约表示,后者是ECMA从属的脚本语言。这是因为MXML在编译时间转换为 ActionScript 3,因此即使没有用过和学过MXML,也完全可能使用ActionScript 3来构建Flex应用。然而对许多应用而言,使用MXML结合ActionScript是常用的方法。


2. Flex是Flash,然后是别的什么

    如果你对Flash一直以来的轻量级矢量动画和优良的用户界面很熟悉,你就不会对Flex感到陌生。Flex是在Flash Player基础上建立的,后者是所有Flash内容的引擎。所以,没有什么Flash能做到而Flex做不到的东西。

    所有Flash中的显示编程、API画图和动画,Flex也完全可用。然而,Flex还为Flash应用提供了架构,提供一整套用于帮助开发者写出强大和可扩展应用的界面组件和容器。


3. Flex 很能干

    许多公司将他们的软件从Java移植到Flex。这是因为Flex能够提供许多跟Java一样的性能,如跨操作系统的"write once"能力和面向对象的架构,但Flex的包小得多而且可以下载许多额外包。Flex应用既能用于web端软件也能用于桌面端软件(与Adobe AIR)而且这样做可以利用一个单独的code base。

    由于Flex构建在处处可见的Flash Player之上,所以无论你写的是什么都能在安装了它的机子上运行,而且带有Flash Player 9的电脑(大部分是能上网的机子)达到了高达90%的比率。Flash Player使你免于不同浏览器转换的弊病,使你的软件免于愚蠢的bug和冗长的代码,并且避免由于新浏览器的发布而重写代码,而且动»¬和音效在每台机 子上都播放得一样好。当你为Adobe AIR写代码的时候,你就立刻拥有了一个跨操作系统的桌面应用,能够一举运行在Mac OSX、Windows和Linux系统上。


4. Flex与服务器无关

    Flex为数据而生,它可以以大多数常见的格式、跟所有常见的服务器交互来接受数据。这包括本地和远程下载的XML、JSP、 PHP、 ASP还是 ColdFusion你自己说了算。你可以通过HTTP 或者SOAP web服务器下载信息,甚至可以直接与Java服务器对象交互或者在线转换二进制数据。Adobe AIR能向SQLLite数据库读和写。如果你有个特别的back-end服务器,Flex也可能会用他们而且大多数情况下操作都很简单。

    如果有框架中的一套优秀服务组件,多半你能够用几行代码就获取到你的数据,并且直接绑定到UI组件。如果你需要更多精细的控制,你也能够连接到二进制插口而且甚至下载文件(在Flash Player 10)。


5.Flex就是你想要的样子

    Flex应用的默认界面是可以配置的。由于内核的可编程性皮肤,Flex应用可以被调整到你喜欢的样子——这儿那儿改改颜色、修改下透明度、改下UI控制 的外形和尺寸,所有这些可以通过标准的CSS来实现。CSS并非一个需求,因为MXML允许开发者通过简单的标示来调整样式和皮肤。如果你使用Flex Builder,你的应用就有一个完整的WYSIWYG编译器,你能借此制作和插入图形并且拥有所有为你编写的CSS。除此之外,Flex应用还有一堆主 题布景,使得你只需要一行MXML代码就可以改变整个外观。

    值得一提的是,Flex不像Java和JavaScript,它不从所在的操作系统继承UI。也就是说,一个运行在Mac OSX的Flex应用不会有像Mac按键的按键,呼叫Flex Alert也不会呈现Mac alert表。Flex有其内置的界面,但是如果操作系统的样子是你想要的,那也有一些主题可以让你很接近操作系统的样子。


6. Flex轻便快捷

    由于构建于ActionScript 3之上,所以Flex框架出奇地快。ActionScript 3显著提高了初始化时间,内置对延迟实例化的支持作用也很明显。使用了一个全新的JIT (Just-in-Time)编译器,你的代码运行得会非常快。富数据可视化和一流的动画可以不要动用用户的CPU来完成。由于之前的3D动画始终是个瓶 颈,Flash 10中的全新支持将解决这个问题。甚至还有图像的硬件加速器来充分利用现代的图形处理卡(显卡)。

    尽管有人有争议,但Flex的确很轻。使用一套UI组件将肯定比从零做起的ActionScript代码大,但考虑到它们的强大,这些组件确实很小。实际 上,使用一个AJAX框架构建的典型应用经常比一个小的Flex应用大。尽管Flash Player经常预装在电脑里,但它也不过是几个兆字节的下载。值得一提的是还有个叫做框架缓存(framework caching)的新组件,能为框架组件取出相当部分的下载。这个特性能够在用户的电脑上存储标准的Flex UI组件,从而其他的Flex应用可以迅速下载,而不用下载整个框架。


7. 无障碍的Flex

    有一段时间,关于Flash能否为残障人士所用的争论很多,而且理由不少。Flash内容经常被误解为骨子里就不能让残障人士使用,但这种观点实际上是远 离事实的。随着用户渴望得到的越来越多,Flash能够与屏幕阅读器“互动”。实际上,Flex框架的组件有一个很棒的辅助工具,可以为屏幕阅读器和键盘 提供导航,大部分Flex开发者需要做的只是开启这个工具(默认选项是关闭的)。

    与许多AJAX组件相比,Flex更有亲和力。这是因为HTML通过创建JavaScript框架,经常破坏许多本地的残障人士支持特性。相比较而言,Flex从已开始骨子里就内建了对残障人士的支持。


8. Flex 是SEO兼容的

    过去,在Flash Player上构建一个网址是搜索引擎最佳化(SEO)的梦魇。这是因为用来浏览web页面的软件通常“不认识”.swf文件,后者是Flex应用编译成 的二进制文件。现代的搜索引擎最终加入了阅读.swf文件的功能,比如超链接和大量文本,这多少起了些作用。

    然而,完全使用Flash/Flex构建网站的问题在于,不同网址的浏览关系比如site—tabs是不被搜索引擎理解的,引擎认为这只是一个单独的页面 (也许有点文本)。考虑到Flex应用编译的方法,.swf的可读性变得更加困难。就在最近,Adobe针对搜索引擎机器人推出了一款特殊版本的 Flash Player,它能够让引擎搜索得更加深入从而迅速返回最好的搜索结果。然而如果SEO只是你的最初目标,那么完全使用Flash来构建网页是不可取的。 使用HTML夹杂Flash内容才是更好的方法,或者也可以用HTML来构建主页,用Flash来构建某些部分。注意,MXML代码编译成.swf,这种 标示搜索引擎是不认的。


9. Flex 是免费的,开源的

    Flex的整个框架的源代码是公开的,同样Flex SDK和Flex Builder的每个copy也都是公开的。这意味着你可以从内部看到它们是怎么工作的,以及框架的debug过程,甚至你可以为个人用途而修改它们。 Flex也是免费的——使用Flex SDK开发是免费的,也可以使用免费的mxmlc编¼¬器来编译。不同于早期的版本,Flex也不再需要特殊的服务器。你可以轻易地创建一个编译应用并发 布到你想要的服务器上。当然,如果你决定使用基于Eclipse的IDE开发,那么Flex Builder的一个copy是付费的。但这个费用不高,而且这个最初的开发工具最近又降价了。


10. Flex易于学习

    Flex,我敢说,很容易学。MXML非常易于理解,去除了用纯ActionScript开发的许多复杂的语法。如果你曾用过HTML和CSS,再学 Flex你就已经算会了一半。一旦你学了MXML的基础,你就可以开始学习ActionScript来让你的应用更具交互性。Flex框架提供了一整套用 户界面组件来加快开发过程,学习它们的基本使用也是非常简单的。

    这确实很简单尤其是当你开始使用ASDocs时,后者是为Flex提供的文档。今天对任何编程语言来说,ASDocs都可能是最精细和简化的一套文档,这 使得最初的开发环境——Flex Builder,能够帮助你快速入手,并使你在Design模式下可视化地构建你的应用,让你使用手指(点击)即能完成最常见的任务。而且市面上有许多很 好的书籍,既有适合编程绝对菜鸟的又有适合其他编程语言转到Flex的,林林总总。

版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章