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