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