Flex程序員最應該知道的十件事
這里和大家分享一下Flex程序員必須知道的十件事,如果你是Flex程序員或者對Flex學習有興趣,那么本文的介紹你一會讓你有所收獲。
Flex程序員必須知道的十件事
1.重新定義:Flex是web標準
MXML是Flex應用的標準語言,它允許開發(fā)人員開發(fā)應用程序架構,不僅包括表現(xiàn)層也包括classstructure。這對web設計類的人和后臺開發(fā)的人來說很容易,因為MXMLmarkup與HTML很類似。同樣的,F(xiàn)lex內(nèi)的ActionScript與JavaScript也很有可比性,而且Flex使用web標準的CSS來控制表現(xiàn)層。它也是構建應用架構的好方法,因為語言的樹形特性使它很好地融合了一個典型的應用container-component模型。因此,源代碼易于發(fā)布,因為它不是一個二進制的IDE特定文件,而是適合人讀的文本文件。
值得一提的是,MXML是ActionScript某種程度上的簡約表示,后者是ECMA從屬的腳本語言。這是因為MXML在編譯時間轉(zhuǎn)換為ActionScript3,因此即使沒有用過和學過MXML,也完全可能使用ActionScript3來構建Flex應用。然而對許多應用而言,使用MXML結合ActionScript是常用的方法。
2.Flex是Flash,然后是別的什么
如果你對Flash一直以來的輕量級矢量動畫和優(yōu)良的用戶界面很熟悉,你就不會對Flex感到陌生。Flex是在FlashPlayer基礎上建立的,后者是所有Flash內(nèi)容的引擎。所以,沒有什么Flash能做到而Flex做不到的東西。
所有Flash中的顯示編程、API畫圖和動畫,F(xiàn)lex也完全可用。然而,F(xiàn)lex還為Flash應用提供了架構,提供一整套用于幫助開發(fā)者寫出強大和可擴展應用的界面組件和容器。
3.Flex很能干
許多公司將他們的軟件從Java移植到Flex。這是因為Flex能夠提供許多跟Java一樣的性能,如跨操作系統(tǒng)的"writeonce"能力和面向?qū)ο蟮募軜?,但Flex的包小得多而且可以下載許多額外包。Flex應用既能用于web端軟件也能用于桌面端軟件(與AdobeAIR)而且這樣做可以利用一個單獨的codebase。
由于Flex構建在處處可見的FlashPlayer之上,所以無論你寫的是什么都能在安裝了它的機子上運行,而且?guī)в蠪lashPlayer9的電腦(大部分是能上網(wǎng)的機子)達到了高達90%的比率。FlashPlayer使你免于不同瀏覽器轉(zhuǎn)換的弊病,使你的軟件免于愚蠢的bug和冗長的代碼,并且避免由于新瀏覽器的發(fā)布而重寫代碼,而且動??和音效在每臺機子上都播放得一樣好。當你為AdobeAIR寫代碼的時候,你就立刻擁有了一個跨操作系統(tǒng)的桌面應用,能夠一舉運行在MacOSX、Windows和Linux系統(tǒng)上。
4.Flex與服務器無關
Flex程序員應該知道Flex為數(shù)據(jù)而生,它可以以大多數(shù)常見的格式、跟所有常見的服務器交互來接受數(shù)據(jù)。這包括本地和遠程下載的XML、JSP、PHP、ASP還是ColdFusion你自己說了算。你可以通過HTTP或者SOAPweb服務器下載信息,甚至可以直接與Java服務器對象交互或者在線轉(zhuǎn)換二進制數(shù)據(jù)。AdobeAIR能向SQLLite數(shù)據(jù)庫讀和寫。如果你有個特別的back-end服務器,F(xiàn)lex也可能會用他們而且大多數(shù)情況下操作都很簡單。
如果有框架中的一套優(yōu)秀服務組件,多半你能夠用幾行代碼就獲取到你的數(shù)據(jù),并且直接綁定到UI組件。如果你需要更多精細的控制,你也能夠連接到二進制插口而且甚至下載文件(在FlashPlayer10)。
5.Flex就是你想要的樣子
Flex程序員應該知道Flex應用的默認界面是可以配置的。由于內(nèi)核的可編程性皮膚,F(xiàn)lex應用可以被調(diào)整到你喜歡的樣子——這兒那兒改改顏色、修改下透明度、改下UI控制的外形和尺寸,所有這些可以通過標準的CSS來實現(xiàn)。CSS并非一個需求,因為MXML允許開發(fā)者通過簡單的標示來調(diào)整樣式和皮膚。如果你使用FlexBuilder,你的應用就有一個完整的WYSIWYG編譯器,你能借此制作和插入圖形并且擁有所有為你編寫的CSS。除此之外,F(xiàn)lex應用還有一堆主題布景,使得你只需要一行MXML代碼就可以改變整個外觀。
值得一提的是,F(xiàn)lex不像Java和JavaScript,它不從所在的操作系統(tǒng)繼承UI。也就是說,一個運行在MacOSX的Flex應用不會有像Mac按鍵的按鍵,呼叫FlexAlert也不會呈現(xiàn)Macalert表。Flex有其內(nèi)置的界面,但是如果操作系統(tǒng)的樣子是你想要的,那也有一些主題可以讓你很接近操作系統(tǒng)的樣子。
6.Flex輕便快捷
由于構建于ActionScript3之上,所以Flex框架出奇地快。ActionScript3顯著提高了初始化時間,內(nèi)置對延遲實例化的支持作用也很明顯。使用了一個全新的JIT(Just-in-Time)編譯器,你的代碼運行得會非???。富數(shù)據(jù)可視化和***的動畫可以不要動用用戶的CPU來完成。由于之前的3D動畫始終是個瓶頸,F(xiàn)lash10中的全新支持將解決這個問題。甚至還有圖像的硬件加速器來充分利用現(xiàn)代的圖形處理卡(顯卡)。
盡管有人有爭議,但Flex的確很輕。使用一套UI組件將肯定比從零做起的ActionScript代碼大,但考慮到它們的強大,這些組件確實很小。實際上,使用一個AJAX框架構建的典型應用經(jīng)常比一個小的Flex應用大。盡管FlashPlayer經(jīng)常預裝在電腦里,但它也不過是幾個兆字節(jié)的下載。值得一提的是還有個叫做框架緩存(frameworkcaching)的新組件,能為框架組件取出相當部分的下載。這個特性能夠在用戶的電腦上存儲標準的FlexUI組件,從而其他的Flex應用可以迅速下載,而不用下載整個框架。
7.無障礙的Flex
有一段時間,關于Flash能否為殘障人士所用的爭論很多,而且理由不少。Flash內(nèi)容經(jīng)常被誤解為骨子里就不能讓殘障人士使用,但這種觀點實際上是遠離事實的。隨著用戶渴望得到的越來越多,F(xiàn)lash能夠與屏幕閱讀器“互動”。實際上,F(xiàn)lex框架的組件有一個很棒的輔助工具,可以為屏幕閱讀器和鍵盤提供導航,大部分Flex開發(fā)者需要做的只是開啟這個工具(默認選項是關閉的)。
與許多AJAX組件相比,F(xiàn)lex更有親和力。這是因為HTML通過創(chuàng)建JavaScript框架,經(jīng)常破壞許多本地的殘障人士支持特性。相比較而言,F(xiàn)lex從已開始骨子里就內(nèi)建了對殘障人士的支持。
8.Flex是SEO兼容的
過去,在FlashPlayer上構建一個網(wǎng)址是搜索引擎***化(SEO)的夢魘。這是因為用來瀏覽web頁面的軟件通常“不認識”.swf文件,后者是Flex應用編譯成的二進制文件。現(xiàn)代的搜索引擎最終加入了閱讀.swf文件的功能,比如超鏈接和大量文本,這多少起了些作用。
然而,完全使用Flash/Flex構建網(wǎng)站的問題在于,不同網(wǎng)址的瀏覽關系比如site—tabs是不被搜索引擎理解的,引擎認為這只是一個單獨的頁面(也許有點文本)??紤]到Flex應用編譯的方法,.swf的可讀性變得更加困難。就在最近,Adobe針對搜索引擎機器人推出了一款特殊版本的FlashPlayer,它能夠讓引擎搜索得更加深入從而迅速返回***的搜索結果。然而如果SEO只是你的最初目標,那么完全使用Flash來構建網(wǎng)頁是不可取的。使用HTML夾雜Flash內(nèi)容才是更好的方法,或者也可以用HTML來構建主頁,用Flash來構建某些部分。注意,MXML代碼編譯成.swf,這種標示搜索引擎是不認的。
9.Flex是免費的,開源的
Flex程序員應該知道Flex的整個框架的源代碼是公開的,同樣FlexSDK和FlexBuilder的每個copy也都是公開的。這意味著你可以從內(nèi)部看到它們是怎么工作的,以及框架的debug過程,甚至你可以為個人用途而修改它們。Flex也是免費的——使用FlexSDK開發(fā)是免費的,也可以使用免費的mxmlc編??器來編譯。不同于早期的版本,F(xiàn)lex也不再需要特殊的服務器。你可以輕易地創(chuàng)建一個編譯應用并發(fā)布到你想要的服務器上。當然,如果你決定使用基于Eclipse的IDE開發(fā),那么FlexBuilder的一個copy是付費的。但這個費用不高,而且這個最初的開發(fā)工具最近又降價了。
10.Flex易于學習
Flex,我敢說,很容易學。MXML非常易于理解,去除了用純ActionScript開發(fā)的許多復雜的語法。如果你曾用過HTML和CSS,再學Flex你就已經(jīng)算會了一半。一旦你學了MXML的基礎,你就可以開始學習ActionScript來讓你的應用更具交互性。Flex框架提供了一整套用戶界面組件來加快開發(fā)過程,學習它們的基本使用也是非常簡單的。
這確實很簡單尤其是當你開始使用ASDocs時,后者是為Flex提供的文檔。今天對任何編程語言來說,ASDocs都可能是最精細和簡化的一套文檔,這使得最初的開發(fā)環(huán)境——FlexBuilder,能夠幫助你快速入手,并使你在Design模式下可視化地構建你的應用,讓你使用手指(點擊)即能完成最常見的任務。而且市面上有許多很好的書籍,既有適合編程絕對菜鳥的又有適合其他編程語言轉(zhuǎn)到Flex的,林林總總。
【編輯推薦】