偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Flex2.0實踐指南

開發(fā) 后端
Flex2.0.1,是目前Flex的最新版本。用過的人都知道,相比于Flex2.0來說,F(xiàn)lex2.0.1的推出,是Flex功能上煥然一新的飛躍。

本文和大家重點學(xué)習(xí)一下Flex2.0實踐方面的知識,F(xiàn)lex2.0.1,是目前Flex的***版本。有很多人預(yù)言,F(xiàn)lex2.0.1中很多新功能的定位,將直接面對Flash9,以及Adobe即將推出的Apollo項目。

Flex2.0實踐

自從識得Flex以來,我便喜歡上了這個新技術(shù)。說它是新技術(shù),也許有點欠妥。利用AS腳本在Flash中制作表單,這應(yīng)該是很早以前的事情了,想來很多Flash高手現(xiàn)在仍然對Flex嗤之以鼻,也算是這個道理。其實Flex之所以能夠得以流行,完全得益與Adobe給Flash帶來的革新:ActionScript3.0。

Flex來了

我以前曾經(jīng)在Flash中寫過一些小程序,主要是為了獲得良好的視覺效果。說實話,在所有我用過的IDE中,F(xiàn)lash的IDE的確很糟。界面很擠、幫助很少、動態(tài)提示不友好,而且,as腳本很難管理等等。所以,我對用Flash來做稍大一點的項目,從來都沒奢望過。只到有一天,我偶然看到了Flex2。

Flex2.0.1,是目前Flex的***版本。用過的人都知道,相比于Flex2.0來說,F(xiàn)lex2.0.1的推出,是Flex功能上煥然一新的飛躍。有很多人據(jù)此預(yù)言,F(xiàn)lex2.0.1中很多新功能的定位,將直接面對Flash9,以及Adobe即將推出的Apollo項目。

***個Flex2.0實踐

近期的一個B/S項目,我完全采用Flex來進(jìn)行客戶端開發(fā)。由于Flex提供了充足的通訊方式:HttpService、WebService以及RemoteObjectService調(diào)用。這三種方式都是異步的,并提供了回調(diào)事件,這種方式恰好是Ajax大行其道的原因。

基于項目的考慮,在項目中需要進(jìn)行大量的數(shù)據(jù)插入、查詢、報表、以及數(shù)據(jù)CRUD的操作,其實,ROS應(yīng)該是***的通訊方案。不幸的是,ROS需要FlexDataService服務(wù),對于多CPU的服務(wù)器,這是個高成本的投入,只能忍痛割愛了。因此,本項目采用HttpSevice作為通訊方案。

你是否需要框架?

說實話,在客戶端的開發(fā)中,我從來沒有認(rèn)真考慮過框架問題。因為,對于HTML和Javascript組成的Web頁面來說,的確沒有一個很理想的解決方案??墒窃贔lex中,問題終于出現(xiàn)了。

總體來說,F(xiàn)lex2.0算得上一個獨立的開發(fā)環(huán)境。這一點,類似與Java和.net開發(fā)環(huán)境一樣。Java提供了JDK,.net提供了.netframework,而Flex2.0則提供了FlexSDK。我們的應(yīng)用,寫在ActionScript的類和一個個的MXML文件中。對象與對象之間,通過事件和方法調(diào)用進(jìn)行通訊,不同的對象往往需要共享相同的通訊組件和數(shù)據(jù)、甚至共享代碼和變量。因此,當(dāng)寫了十個以上的類時,你就會發(fā)現(xiàn),代碼亂的一團(tuán)糟。

聯(lián)想在Java中使用Spring的經(jīng)驗,我立即意識到框架的重要性。那幾天,我一直在Adobe官方網(wǎng)站上轉(zhuǎn)悠,試圖找到些線索。于是,我找到了Cairngorm。

Cairngorm框架

Cairngorm框架,用作者自己的話來說,只能叫做MicroArchitecture(微型架構(gòu))。的確,Cairngorm只是一些設(shè)計模式的應(yīng)用,包括FrontController模式、Commander模式、以及Proxy模式等。其原理非常的容易理解:

FrontController負(fù)責(zé)注冊所有的事件類型以及事件發(fā)生時所調(diào)用的Commander。當(dāng)組件之間需要通訊時,組件向FrontController發(fā)出event并在event中傳遞參數(shù),然后FrontController調(diào)用Commander完成任務(wù)并更新model中的數(shù)據(jù)。所有的model中的DataObject都是bindable的,這樣,所有的組件自動實現(xiàn)了數(shù)據(jù)的更新。

ModelLocator是所有modeldata的核心。系統(tǒng)用到的所有公共數(shù)據(jù)都存儲中ModelLocator中,Commander通過ModelLocator進(jìn)行數(shù)據(jù)通訊。通訊采用Proxy的方式,所有的通訊方式都被隱藏在Proxy的后面,這樣當(dāng)更換通訊模塊的時候,不會影響到其他的代碼。

當(dāng)然,由于Flex2.0提供的幾種Service方式差異很大,所以,Proxy技術(shù)并不能完全的實現(xiàn)代碼隱藏。但這種技術(shù)本身,給我們提供了很大的參考價值。

簡化的方案

Cairngorm的確給我們帶來了全新的理念,但我只打算使用它的部分理念,因為,對于一個中小型的項目來說,Cairngorm還是顯得復(fù)雜。Cairngorm的設(shè)計目標(biāo)是,***程度上減輕組件之間的耦合,而把所有的對象之間的通訊都改為事件。這樣,在減低了耦合性的同時,降低了系統(tǒng)的性能和可測試性。

在我的設(shè)計方案中,我去掉了FrontController、Commander等概念,保留了ModelLocator、Event和Proxy。系統(tǒng)流程如下:ModelLocator負(fù)責(zé)注冊和派發(fā)事件,存儲中心數(shù)據(jù)。組件通訊采用Event方式,同服務(wù)器的通訊采用ServiceProxy。

所有的代碼都寫在Action類中,所有的Action類都實現(xiàn)了IResponder接口。這樣,ServiceProxy就可以把異步事件傳播給Action對象。每個Action對象實例化一個ServiceProxy類,并在組件中調(diào)用action對象進(jìn)行操作。如果需要通信,則由組件在ModelLocator中派發(fā)事件,另一個注冊了該事件的組件獲得了通知。

這是一個簡化了的設(shè)計方案,雖然增加了對象之間的耦合,但整體思路更加清晰,代碼量和編譯后的swf文件大小都得到了優(yōu)化。

FlexBuilder2心得

FlexBuilder2完全基于Eclipse平臺,這給項目的設(shè)計帶來了極大的性能改善和增強(qiáng)的用戶體驗。

方便的功能:

可選的自動編譯項目,這樣在保存后系統(tǒng)立即更新到bin目錄,并能夠立即檢查出代碼中的錯誤并給出提示;
可以選擇清除所有輸出,系統(tǒng)將自動重新進(jìn)行編譯;
強(qiáng)大的調(diào)試功能;
CTRL+ALT+↑向上復(fù)制一行,CTRL+ALT+↓向下復(fù)制一行,這個功能在代碼編寫中非常的實用;
可以改變代碼文件的文件編碼;

不足之處:

無法選擇打開項目。如果一個項目從其他地方復(fù)制過來,在FlexBuilder中在無法打開,只能新建一個項目,然后把這個項目覆蓋上去;
不能自動在Developer視圖和Debug視圖之間進(jìn)行切換,甚至連快捷鍵都沒有提供;
編輯器不支持鼠標(biāo)拖拽復(fù)制,只能采用剪切和粘貼,相當(dāng)不便;
調(diào)試窗口中不能對變量進(jìn)行鼠標(biāo)懸停提示,也不能把變量直接拖拽到watch窗口,變量查看相當(dāng)不便;
很多自定義類的方法在動態(tài)提醒中無法顯示參數(shù)定義;
不能對import列表進(jìn)行優(yōu)化。雖然提供了對import的整理功能,但這個功能只在類中可以使用,在mxml中則無法使用;
缺少代碼格式化功能;
對xml文件支持不好,或者說干脆不支持;
似乎說了很多的缺點,但其實只是因為太關(guān)注,所以太看重Flex2.0。Flex3.0已經(jīng)在研發(fā)的過程中,隨著Apollo項目的推出,F(xiàn)lex將會有一個更加值得期待的未來。

【編輯推薦】

  1. Flex2.0.1新特性和所做改進(jìn)概要
  2. 揭露Flex2.0的幾大誤區(qū)
  3. 技術(shù)分享 Flex2.0文件上傳如何實現(xiàn)
  4. FlexBuilder3.0與Eclipse3.4的***結(jié)合
  5. Flex ComboBox和Datagrid組件用法指導(dǎo)

 

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-28 09:10:41

Flex2.0

2010-07-28 08:44:12

Flex2.0

2010-08-10 15:38:32

Flex2.0

2010-07-28 09:24:31

Flex2.0

2010-08-10 14:18:15

RationalFunFlex

2010-08-10 14:25:42

SilkTestFlex

2010-08-05 14:32:16

Flex框架

2010-08-12 15:20:49

Flex Builde

2010-08-09 12:42:16

Flex module

2010-08-04 15:37:31

Flex圖表

2010-07-30 10:13:38

Flex控件

2010-07-29 17:11:03

Flex

2010-08-04 14:07:59

Flex事件機(jī)制

2010-07-29 09:31:28

Flex編程模型

2010-08-02 13:35:59

FlexBuilder

2010-07-28 14:59:26

Flex字符串

2010-08-09 10:21:56

XMLFlex

2010-08-04 09:06:21

Flex安裝

2010-08-04 14:28:01

Flex組件

2010-08-13 11:34:54

Flex自定義事件
點贊
收藏

51CTO技術(shù)棧公眾號