Flex中你最應(yīng)該知道的那些事
在學(xué)習(xí)Flex的過程中,有些事情是你必須要了解的。這里和大家分享一下Flex中你最應(yīng)該知道的那些事,相信本文介紹一定會(huì)讓你有所收獲。
Flex中你最應(yīng)該知道的那些事
1.重新定義:Flex是web標(biāo)準(zhǔn)
MXML是Flex應(yīng)用的標(biāo)準(zhǔn)語言,它允許開發(fā)人員開發(fā)應(yīng)用程序架構(gòu),不僅包括表現(xiàn)層也包括classstructure。這對(duì)web設(shè)計(jì)類的人和后臺(tái)開發(fā)的人來說很容易,因?yàn)镸XMLmarkup與HTML很類似。同樣的,F(xiàn)lex內(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某種程度上的簡(jiǎn)約表示,后者是ECMA從屬的腳本語言。這是因?yàn)镸XML在編譯時(shí)間轉(zhuǎn)換為ActionScript3,因此即使沒有用過和學(xué)過MXML,也完全可能使用ActionScript3來構(gòu)建Flex應(yīng)用。然而對(duì)許多應(yīng)用而言,使用MXML結(jié)合ActionScript是常用的方法。
2.Flex是Flash,然后是別的什么
如果你對(duì)Flash一直以來的輕量級(jí)矢量動(dòng)畫和優(yōu)良的用戶界面很熟悉,你就不會(huì)對(duì)Flex感到陌生。Flex是在FlashPlayer基礎(chǔ)上建立的,后者是所有Flash內(nèi)容的引擎。所以,沒有什么Flash能做到而Flex做不到的東西。
所有Flash中的顯示編程、API畫圖和動(dòng)畫,F(xiàn)lex也完全可用。然而,F(xiàn)lex還為Flash應(yīng)用提供了架構(gòu),提供一整套用于幫助開發(fā)者寫出強(qiáng)大和可擴(kuò)展應(yīng)用的界面組件和容器。
3.Flex很能干
許多公司將他們的軟件從Java移植到Flex。這是因?yàn)镕lex能夠提供許多跟Java一樣的性能,如跨操作系統(tǒng)的"writeonce"能力和面向?qū)ο蟮募軜?gòu),但Flex的包小得多而且可以下載許多額外包。Flex應(yīng)用既能用于web端軟件也能用于桌面端軟件(與AdobeAIR)而且這樣做可以利用一個(gè)單獨(dú)的codebase。
由于Flex構(gòu)建在處處可見的FlashPlayer之上,所以無論你寫的是什么都能在安裝了它的機(jī)子上運(yùn)行,而且?guī)в蠪lashPlayer9的電腦(大部分是能上網(wǎng)的機(jī)子)達(dá)到了高達(dá)90%的比率。FlashPlayer使你免于不同瀏覽器轉(zhuǎn)換的弊病,使你的軟件免于愚蠢的bug和冗長的代碼,并且避免由于新瀏覽器的發(fā)布而重寫代碼,而且動(dòng)??和音效在每臺(tái)機(jī)子上都播放得一樣好。當(dāng)你為AdobeAIR寫代碼的時(shí)候,你就立刻擁有了一個(gè)跨操作系統(tǒng)的桌面應(yīng)用,能夠一舉運(yùn)行在MacOSX、Windows和Linux系統(tǒng)上。
4.Flex與服務(wù)器無關(guān)
Flex為數(shù)據(jù)而生,它可以以大多數(shù)常見的格式、跟所有常見的服務(wù)器交互來接受數(shù)據(jù)。這包括本地和遠(yuǎn)程下載的XML、JSP、PHP、ASP還是ColdFusion你自己說了算。你可以通過HTTP或者SOAPweb服務(wù)器下載信息,甚至可以直接與Java服務(wù)器對(duì)象交互或者在線轉(zhuǎn)換二進(jìn)制數(shù)據(jù)。AdobeAIR能向SQLLite數(shù)據(jù)庫讀和寫。如果你有個(gè)特別的back-end服務(wù)器,F(xiàn)lex也可能會(huì)用他們而且大多數(shù)情況下操作都很簡(jiǎn)單。
如果有框架中的一套優(yōu)秀服務(wù)組件,多半你能夠用幾行代碼就獲取到你的數(shù)據(jù),并且直接綁定到UI組件。如果你需要更多精細(xì)的控制,你也能夠連接到二進(jìn)制插口而且甚至下載文件(在FlashPlayer10)。
5.Flex就是你想要的樣子
Flex應(yīng)用的默認(rèn)界面是可以配置的。由于內(nèi)核的可編程性皮膚,F(xiàn)lex應(yīng)用可以被調(diào)整到你喜歡的樣子——這兒那兒改改顏色、修改下透明度、改下UI控制的外形和尺寸,所有這些可以通過標(biāo)準(zhǔn)的CSS來實(shí)現(xiàn)。CSS并非一個(gè)需求,因?yàn)镸XML允許開發(fā)者通過簡(jiǎn)單的標(biāo)示來調(diào)整樣式和皮膚。如果你使用FlexBuilder,你的應(yīng)用就有一個(gè)完整的WYSIWYG編譯器,你能借此制作和插入圖形并且擁有所有為你編寫的CSS。除此之外,F(xiàn)lex應(yīng)用還有一堆主題布景,使得你只需要一行MXML代碼就可以改變整個(gè)外觀。
值得一提的是,F(xiàn)lex不像Java和JavaScript,它不從所在的操作系統(tǒng)繼承UI。也就是說,一個(gè)運(yùn)行在MacOSX的Flex應(yīng)用不會(huì)有像Mac按鍵的按鍵,呼叫FlexAlert也不會(huì)呈現(xiàn)Macalert表。Flex有其內(nèi)置的界面,但是如果操作系統(tǒng)的樣子是你想要的,那也有一些主題可以讓你很接近操作系統(tǒng)的樣子。
6.Flex輕便快捷
由于構(gòu)建于ActionScript3之上,所以Flex框架出奇地快。ActionScript3顯著提高了初始化時(shí)間,內(nèi)置對(duì)延遲實(shí)例化的支持作用也很明顯。使用了一個(gè)全新的JIT(Just-in-Time)編譯器,你的代碼運(yùn)行得會(huì)非???。富數(shù)據(jù)可視化和***的動(dòng)畫可以不要?jiǎng)佑糜脩舻腃PU來完成。由于之前的3D動(dòng)畫始終是個(gè)瓶頸,F(xiàn)lash10中的全新支持將解決這個(gè)問題。甚至還有圖像的硬件加速器來充分利用現(xiàn)代的圖形處理卡(顯卡)。
盡管有人有爭(zhēng)議,但Flex的確很輕。使用一套UI組件將肯定比從零做起的ActionScript代碼大,但考慮到它們的強(qiáng)大,這些組件確實(shí)很小。實(shí)際上,使用一個(gè)AJAX框架構(gòu)建的典型應(yīng)用經(jīng)常比一個(gè)小的Flex應(yīng)用大。盡管FlashPlayer經(jīng)常預(yù)裝在電腦里,但它也不過是幾個(gè)兆字節(jié)的下載。值得一提的是還有個(gè)叫做框架緩存(frameworkcaching)的新組件,能為框架組件取出相當(dāng)部分的下載。這個(gè)特性能夠在用戶的電腦上存儲(chǔ)標(biāo)準(zhǔn)的FlexUI組件,從而其他的Flex應(yīng)用可以迅速下載,而不用下載整個(gè)框架。
【編輯推薦】