一,概述Flex是Adobe公司的支持RIA(rich internet applications)開發(fā)和部署的平臺,它是一系列發(fā)展中的技術(shù)和產(chǎn)品線的概括詞,包括Flex Framework, Flex Builder 2, Flex Enterprise Services 2等。 FLEX試圖通過提供一個程序員們已經(jīng)熟知的工作流和編程模型,讓程序員比從前更快更簡單地開發(fā)動畫及RIA應(yīng)用。在多層式開發(fā)模型中,F(xiàn)LEX應(yīng)用屬于表現(xiàn)層。FLEX的語言和文件結(jié)構(gòu)也試圖把應(yīng)用程序的邏輯從設(shè)計中分離出來。
二,F(xiàn)lex開發(fā)環(huán)境1,F(xiàn)lex的客戶端: 須安裝Flash Player Flash Player: 8.5版本開始加入AS3虛擬機(jī),作為FLEX2應(yīng)用的運(yùn)行時(runtime) 2, Flex的web服務(wù)器端: 1). 純靜態(tài)web 服務(wù)器,僅返回一個簡單的靜態(tài)HTML頁面。此時的Flex 應(yīng)用程序的SWF 文件嵌入到一個HTML 頁面中。 2). web應(yīng)用服務(wù)器,如JRun、ColdFusion? 或者PHP,它們可以動態(tài)地生成頁面。在這種情況下,你將使用到與服務(wù)器技術(shù)相關(guān)的庫,并動態(tài)地處理它們的內(nèi)容。 3). J2EE應(yīng)用服務(wù)器或servlet 容器。向一個J2EE 應(yīng)用服務(wù)器或servlet 容器發(fā)出請求,如JRun、Tomcat 或WebSphere?,通常你需要使用Flex Data Services。
3,F(xiàn)lex產(chǎn)品系列: Flex產(chǎn)品線包括了進(jìn)行設(shè)計、開發(fā)、發(fā)布整套RIA 所需的一系列產(chǎn)品。它們是: 1). Adobe Flex 2 SDK(Software Development Kit):是技術(shù)實現(xiàn)和程序編制的基礎(chǔ)集合,它使你可以使用Flex 系列產(chǎn)品來創(chuàng)建應(yīng)用程序。Flex 2 SDK 包含了Flex Framework構(gòu)架(類庫),F(xiàn)lex 編譯器,調(diào)試器,MXML 和ActionScript? 編程語言,以及其它實用程序。Flex SDK 還包括了核心Flex 構(gòu)架類庫的源代碼,使你可以學(xué)習(xí)這些類的代碼并擴(kuò)展它們以備你自己的使用。 2). Adobe Flex Builder 2: Flex開發(fā)的官方IDE 3). Adobe Flex Data Services 2(FLEX服務(wù)器):通過使用Flex Data Services,大大地增強(qiáng)了Flex 2 SDK 的功能性。Flex Data Services新增了對企業(yè)通信的支持(提供一種發(fā)布/訂閱的通信架構(gòu)),以及對于Flex 2 SDK 的數(shù)據(jù)服務(wù)支持(使本地處理的數(shù)據(jù)和服務(wù)器端同步)。你可以在J2EE 應(yīng)用服務(wù)器上或者servlet 容器里將Flex Data Services 發(fā)布為一個標(biāo)準(zhǔn)的web 應(yīng)用程序。Flex Data Services 能夠簡化操作服務(wù)器上數(shù)據(jù)的編程模式。支持自動測試。支持創(chuàng)建靜態(tài)文件(使用解釋編譯方式并且不需要購買服務(wù)器許可證就可以在線部署)。它也是客戶端和XML Web Services及遠(yuǎn)程對象(Coldfusion CFCs,或Java類,等支持Action Message Format的其他對象)之間通訊的通路。 4). Adobe Flex Charting 2: Flex Charting 圖表組件 2: 提供平滑的數(shù)據(jù)可視能力,可看作是Flex Framework的擴(kuò)展。FLEX還有其它多種組件,可實現(xiàn)Web Services,遠(yuǎn)程對象,drag and drop,列排序,圖表等功能;
三,RIA的發(fā)展和Flex的版本歷史術(shù)語: RIA?,Macromedia,XUL?,[Thin client]?瘦客戶端,XAML?,MXML? IT業(yè)的系統(tǒng)架構(gòu)重要轉(zhuǎn)變:基于主機(jī)模式→C/S模式→B/S模式→RIA模式。系統(tǒng)架構(gòu)發(fā)展的下一步是RIA,它最大程度地提高了廣泛性和豐富性。RIA 是集桌面應(yīng)用程序的最佳用戶界面功能與Web應(yīng)用程序的普遍采用和快速、低成本布署以及互動多媒體通信的實時快捷于一體的新一代網(wǎng)絡(luò)應(yīng)用程序。 1, 前Flex階段:Flex Server 1.0 and 1.5的目標(biāo)市場是企業(yè)應(yīng)用開發(fā),價格約 US$15000 每CPU。每個許可證包含五個Flex Builder許可證。使用收費(fèi)的Flex Framework技術(shù)。 A,F(xiàn)lex 1.0-2004年3月: FLEX最初是作為一個J2EE應(yīng)用,或者可以說是JSP標(biāo)簽庫而發(fā)布的。它可以把運(yùn)行中的MXML (FLEX標(biāo)記語言)和 ActionScript?編譯成FLASH應(yīng)用程序(即二進(jìn)制的SWF文件)。 B,F(xiàn)lex 1.5-2004年10月:Flex 1.5的重點在于表現(xiàn)層,由于SWF客戶端只需要載入一次,大大改善工作流。 C,F(xiàn)lex Builder 1.5 是基于Dreamweaver編碼環(huán)境的服務(wù)于Flex 1.5的編程環(huán)境,實現(xiàn)了設(shè)計/代碼視圖,高亮語法顯示,代碼縮進(jìn)和應(yīng)用預(yù)覽等功能。 2, 新Flex階段:Flex是第一個被Adobe冠上Adobe商標(biāo)而重新命名的原Macromedia 產(chǎn)品。Flex2和AS3的巨大變動在使用者社區(qū)引起了巨大的爭議。 A,F(xiàn)lex 2.0 Alpha-2005年10月, B,F(xiàn)lex 2.0 Beta 1/2/3 - 2006年2月/3月/5月, C,F(xiàn)lex 2.0 FINAL - 2006年6月28日 D,F(xiàn)lex 2.01 - 2007年1月5日 Flex 2改變了許可模式,把原Flex Framework技術(shù)加入到免費(fèi)的Adobe Flex 2 SDK,全新于1.5的 Flex Builder 2 基于Eclipse IDE是收費(fèi)的,但Flex編譯器是免費(fèi)的。 Flex 2并引入了新版本的語言ActionScript3?的使用,這需要 Flash Player 9 以上版本作為運(yùn)行時(runtime)。ActionScript? 3是Flex Framework的核心。雖然語法和AS2類似,但它更加面向?qū)ο蠡皖愋突?。而且因為在新的虛擬機(jī)中運(yùn)行,所以比AS2快得多。 當(dāng)然,對于有特別需要的用戶來說,仍提供收費(fèi)的企業(yè)級服務(wù)。Flex2.0中把RemoteObject?分離成為一個組件單獨(dú)來收費(fèi),稱為Flex Data Services 2(FDS,在Beta2之前舊稱Flex Enterprise Services 2),是Flex 1.5 server的下一代,提供諸如data push和自動測試等高級功能。但同時提供免費(fèi)的限制授權(quán)用于單一CPU主機(jī)的Flex Data Services Express。 3,F(xiàn)lex開源項目的發(fā)展: 如免費(fèi)的AMFPHP,Yahoo AS2 Library, Google flex code.... 1), OpenLaszlo?:一般被認(rèn)為可能是FLEX替代品的是 OpenLaszlo?和Ajax 技術(shù)。還可以參考一下早已是標(biāo)準(zhǔn)的SVG?技術(shù)。 2), NeoSwiff:從C#到SWF的編譯器 3), MTASC:免費(fèi)并開源的 AS 2 編譯工具 4),ColdFusion?: Macromedia 把一部份Flex 1.5的子集嵌入到了它的Coldfusion MX 7中間件平臺中以供在Flash forms中使用。雖然可以使用這個平臺來開發(fā)RIA,但是它原來的目的只是為了開發(fā)豐富的forms應(yīng)用,所以這個功能并不為Macromedia 所支持。 5), Ajax, Aflax 6), 開源的Granite Data Services graniteds 7), 開源JAVA的Red5 : Open Source Flash Server 8), AMFPHP,Flash 直接連接MySQL的AS3驅(qū)動類
四,使用FLEX BUILDER 2進(jìn)行應(yīng)用開發(fā)步驟Flex Builder教程 Flex Builder 2是在Eclipse基礎(chǔ)上創(chuàng)建的(可作為標(biāo)準(zhǔn)的獨(dú)立應(yīng)用軟件,也可作為Eclipse的插件使用,可共享Eclipse工作平臺上豐富的開源資源)一個使用Flex SDK、Flex Data Services 和Flash Player 來開發(fā)應(yīng)用程序的集成開發(fā)環(huán)境(IDE),是生成FLEX應(yīng)用的最簡單最強(qiáng)大的方式。實現(xiàn)了集成編譯器,代碼縮進(jìn),調(diào)試,設(shè)計視圖,源代碼控制系統(tǒng)集成等許多功能。 1,創(chuàng)建一個新工程: 2,界面設(shè)計: 在一個文本編輯器或集成開發(fā)環(huán)境(IDE)中,如Adobe Flex Builder、Eclipse 或IntelliJ?中插入MXML 根標(biāo)簽。組織安排一系統(tǒng)預(yù)定義組件(窗口,按鈕等)來定義一個開發(fā)界面。添加一個或更多容器。在容器中添加控件,如輸入欄、按鈕和輸出欄??墒褂蔑L(fēng)格和主題來定義可見設(shè)計。 對于用戶界面的設(shè)計, Flex Builder 支持可視化的設(shè)計視圖,它可以使開發(fā)人員或者設(shè)計人員去布置Flex 組件,定制它們的外觀,以及如何與用戶進(jìn)行互動。Flex Builder 設(shè)計視圖的界面如下所示:
3,邏輯編程:Flex Builder 提供了一套針對MXML、ActionScript?、層疊樣式表(CSS)的代碼編輯器,幫助你更加容易地管理代碼的源代碼操縱工具,以及幫助排除程序中故障的調(diào)試器。Flex Builder 進(jìn)行程序編制的界面如下圖所示:
1). 定義一種數(shù)據(jù)模型,并在需要時連接上一個數(shù)據(jù)服務(wù)。 2). 添加一個web 服務(wù)器,HTTP 服務(wù)器,或向遠(yuǎn)程Java 對象發(fā)送請求。 3),增加動態(tài)動作,如應(yīng)用程序之間的互動:為數(shù)據(jù)輸入添加驗證。為組件添加腳本。 4,編譯與發(fā)布: 可以使用 Adobe Flex Builder 2 把 Flex 應(yīng)用程序編譯成SWF 文件?;蛘咧苯釉诿钚兄姓{(diào)用編譯器。Flex 編譯器是處于 Flex 2 安裝文件夾下的 Flex SDK 2.0\bin 文件夾中的一個很小的可執(zhí)行文件 mxmlc 。最好確保這個文件夾是系統(tǒng)路徑中。這樣可以直接用如下命令行單獨(dú)調(diào)用它。 //編譯器選項--strict強(qiáng)制編譯器進(jìn)入嚴(yán)格的 Strict 模式,--file-specs 指定被編譯的 MXML 文件mxmlc --strict=true --file-specs MyFirst.mxml Flex 平臺的發(fā)布模式共有三種: 1). 純客戶端運(yùn)行模式和簡單的RPC(HTTPService和WebService?)訪問服務(wù)器模式:如上可以將應(yīng)用程序發(fā)布成一個編譯好的SWF文件??蛻舳诉M(jìn)行訪問的格式是:http://hostname/path/filename.swf 2). RemoteObjects?模式(Flex Data Services等模式)訪問服務(wù)器:可以將應(yīng)用程序發(fā)布為一組MXML 和ActionScript? 文件??蛻舳诉M(jìn)行訪問的格式是:http://hostname/path/filename.mxml 5,設(shè)置斷點,調(diào)試:你可以在代碼編輯器中查看和編輯出錯或被警告的代碼。同時,你還可以設(shè)置斷點、或單步執(zhí)行來幫助你進(jìn)行程序的調(diào)試。
五,F(xiàn)lex編程語言Flex編程語言(編程模型)包括MXML、ActionScript?編程語言和 Flex 類庫,F(xiàn)lex應(yīng)用程序會被實施為 ActionScript? 類庫。 Flex通過將 MXML 和 ActionScript? 語言與該類庫一起使用來開發(fā)應(yīng)用程序。常用MXML來設(shè)置用戶界面,并用ActionScript?來編寫響應(yīng)用戶交互的邏輯。 1,MXML 標(biāo)簽與 ActionScript? 類或類的屬性相對應(yīng)。 當(dāng)您編譯 Flex 應(yīng)用程序時, Flex 會解析 MXML 標(biāo)簽并生成相應(yīng)的 ActionScript? 類。 接著它將這些 ActionScript? 類編譯成存儲在 SWF 文件中的 SWF 字節(jié)碼。 提示: 若要查看 Flex 生成的中間 ActionScript? 文件, 請將 --keep-generated-actionscript 選項添加到 mxmlc 命令中。
2,AS 3 是完全面向?qū)ο缶幊陶Z言。AS3全面兼容ECMAScrip標(biāo)準(zhǔn)(Java Script 2.0的基礎(chǔ)標(biāo)準(zhǔn))。每個類都繼承父類的方法屬性等。如以下繼承關(guān)系:Alert->Panel->Container->UIComponent->FlexSprite?->Sprite->InteractiveObject?->DisplayObject? ->EventDispatcher?->Object 3,F(xiàn)lex 類庫包括了Flex 組件類(可視組件,容器和控件)、管理器類、數(shù)據(jù)服務(wù)類(RPC即Remote Procedure Control,Messaging和Data Service類),以及其他功能的類。在Flex Builder 2中,可以充分利用幫助功能查看類對象,可先在源碼中選定某類名,然后按F1即可。該類庫包含組件 (容器和控件)、管理器類、數(shù)據(jù)服務(wù)類和所有其他功能的類。 4,MXML 和ActionScript?的結(jié)合: 雖然MXML 和ActionScript?編程語言都提供了訪問Flex 類庫的能力。但通常的做法是:使用MXML 去定義用戶界面的組件布局(如果用AS來做也可,但代碼更長更復(fù)雜),使用ActionScript? 去定義客戶端的邏輯并進(jìn)行控制。 1) 可以在MXML中使用Script 標(biāo)簽來包含ActionScript? 2) 還可將腳本塊分隔到外部 ActionScript? 文件中 3) 使用外部ActionScript? 類。 5,F(xiàn)lex 類庫調(diào)用方法: 1), 使用該組件的全名(全路徑): mx.controls.Alert.show("Do you want to save your changes?");
2),導(dǎo)入一次,多次使用: import mx.controls.Alert;Alert.show("Do you want to save your changes?");
六,MXML標(biāo)記語言MXML教程 MXML 是用于為Flex應(yīng)用程序進(jìn)行用戶界面組件布局的 XML 語言。 您還使用 MXML 來顯式定義應(yīng)用程序的非可視方面, 例如訪問服務(wù)器端數(shù)據(jù)源和用戶界面組件與數(shù)據(jù)源之間的數(shù)據(jù)綁定。
七,ActionScript編程語言Action Script教程 在基于組件的開發(fā)模型下,開發(fā)人員可以運(yùn)用預(yù)先做好的組件。將ActionScript? 添加到Flex 應(yīng)用程序中。ActionScript? 可以出色地完成如下任務(wù): 1. 處理事件 2. 處理錯誤 3. 在MXML 語句中將數(shù)據(jù)對象綁定到Flex 控件上 4. 定制組件
八,F(xiàn)lex面向?qū)ο缶幊?/h2>Flex面向?qū)ο缶幊?/font> 為了增強(qiáng)系統(tǒng)的復(fù)用性和可維護(hù)性,采用具有良好體系架構(gòu)的Model-View-Controller(MVC)開發(fā)模型。 1). 模型(Model) 組件封裝了數(shù)據(jù)和與數(shù)據(jù)相關(guān)的行為。 2). 視圖(View) 組件定義了應(yīng)用程序的用戶界面和其他數(shù)據(jù)的顯示。Flex 創(chuàng)建一個應(yīng)用程序時,你使用組件(容器containers 和控件controls)來描述用戶的操作界面。例如,容器可以是一個用來進(jìn)行數(shù)據(jù)輸入的表格容器,如一個盒框Box 或一個柵格Grid;而控件就是該表格中的元素,如一個按鈕/Button? 或文本輸入欄Text Input field。 3). 控制器(Controller) 組件則負(fù)責(zé)處理程序中的數(shù)據(jù)連接。
九,F(xiàn)lex的安全機(jī)制出于安全方面的考慮,在客戶端的Flash Player 中運(yùn)行的應(yīng)用程序,只有在滿足如下條件之一的情況時才能訪問遠(yuǎn)程的數(shù)據(jù)源 1). 應(yīng)用程序所編譯的SWF 文件與遠(yuǎn)程數(shù)據(jù)源位于同一個域中。 2). 使用代理(proxy),并且你的SWF文件位于和代理相同的服務(wù)器上。Adobe Flex Data Services 為Flex 應(yīng)用程序提供了一個完整的代理管理系統(tǒng)。同時,你還可以通過使用一種web 腳本語言,如ColdFusion?、JSP、PHP 或者ASP 來創(chuàng)建一個簡單的代理服務(wù)。 3). 安裝crossdomain.xml (跨域策略/cross-domain policy)文件在數(shù)據(jù)源的宿主Web 服務(wù)器上。crossdomain.xml 文件允許位于其它域中的SWF 文件對數(shù)據(jù)源的訪問。
十,F(xiàn)lex程序性能的優(yōu)化Flex優(yōu)化
十一,F(xiàn)lex與Flash從Flash 到Flex:開發(fā)一個Flex 應(yīng)用程序與開發(fā)一個Macromedia Flash Professional 8 程序有所不同,即使兩者都會最終被編譯成SWF 文件。Flash Professional 使用了一些概念,如時間軸/Timeline?,動畫幀/,圖層/layers 來組織和控制程序中的內(nèi)容。而在Flex 中則拋棄了這些內(nèi)容,轉(zhuǎn)而使用MXML 標(biāo)簽來設(shè)計用戶界面組件和連接數(shù)據(jù)源。盡管Flash 和Flex 的開發(fā)模型各不相同,但是Flash 仍然是一個非常強(qiáng)大的工具,用來創(chuàng)建定制的組件和視覺方面的資源,然后以外部SWC 文件的形式導(dǎo)入到Flex 中。
十二,F(xiàn)lex社區(qū)的開源的組件庫項目[www.51it.org/zz/flash/flash2/200702/76762.html Flash互動電子地圖制作手冊] 發(fā)個電子地圖的源代碼 基于創(chuàng)用CC的開源媒體庫 Flex SQL Admin開源 Flex SQL Admin是一個用Flex做的針對 Microsoft SQL Server 的在線查詢分析器。提供了圖形操作界面,關(guān)鍵字高亮等功能 JAM Flex cookbook RIAForge CFFLEX Flex 2類庫資源:該項目的目的是匯集Flex社區(qū)的努力為大家提供一個高質(zhì)量的Flex UI組件庫。 flexBox Flex 2組件資源 Flex資源站 flex免費(fèi)風(fēng)格下載 飛揚(yáng)定制的Flex專項搜索 中文Adobe Flex開發(fā)中心 Adobe Flex官方站點 IFBIN開源 Flash平臺,AS2的開放源碼 RIA 框架: Arp
參考如何架設(shè)一個類似 YouTube 的小型視頻分享站點,Creating a video sharing web application using Flex 2 and Flash Media Server 2 Flex 學(xué)習(xí)站點匯總 ActionScript歷史簡單回顧 本文最新版出處 迎接RIA時代的來臨 RIA技術(shù)概覽 Flex2:使用BitmapData抓圖 Flex2基礎(chǔ)教程系列 Flex Quick Starts中文翻譯 新版 Flex Style Explorer 推出了 打造屬于自己的Apollo 用Flex2開發(fā)2D游戲(先試試2D性能) http://www./ http:///index.jsp Flexcoders - Flex 技術(shù)郵件列表 ColdFusion Flex郵件列表 at House of Fusion. CFlex - Flex開發(fā)者交流社區(qū) Flex Authority - Adobe Flex 開發(fā)者站點 CFFLEX - Coldfusion/Flex 開發(fā)者站點 在Tomcat上設(shè)置Flex Jesse Warden - Adobe Flex開發(fā)者Blog站點
Renaun Erickson - Adobe Flex開發(fā)者Blog站點
|
|
|
來自: pengx > 《Flex / AS》