精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺析基于Flex界面的組合SDK

開發 后端
這里將介紹基于Flex界面的組合SDK,希望本文能對大家掌握Flex前端開發技術有所幫助。

Flex是Sun今后的重點產品,用以對抗Adobe的Flash和微軟的Silverlight。這里將介紹基于Flex界面的組合SDK,可以說頁面還是比較簡潔的。

以下是界面類似我們正在開發的一個產品的主界面,前端展示采用Flex開發,后端系統是基于Java的SOA框架。界面左邊是導航條,右邊是內容區(當然還有其它欄目,在此忽略)。內容區一般由多個UI Part組成,每一個Part利用異步機制從后端獲取數據,此外,它還將接收來自后端的通知消息。整個界面非常符合微軟CAB思想,不過Flex沒有CAB組建,但是可以采用Microsoft用戶控件方式定義一塊一塊內容。界面內容區的UI Part可能會被重用。

界面內容區

在設計中,我想利用界面組合思想來設計,采用該思想的優點有:1)界面分割成不同的組成部分,每一部分實現一個功能,更加符合SRP原則;2)實現每一個UI Part時,只需專注復雜界面中的一塊內容的實現,比較簡單;3)容易實現重用;其缺點有:1)每一個界面由多個UI Part組成,需要維護UI Part之間的聯系;2)新手不太容易看懂界面的實現。

鑒于微軟界面組合諸多優點,我決定將其思想引入到Flex,自己實現一個Composition SDK based on Flex,該SDK實現過程中參考了CAB & SCSF和Prism。

考慮到該軟件需要實現的功能,這個SDK將支持如下功能:

1 UI Part生命周期管理。每一個UI Part在顯示的時候,需要從后端獲取數據,然后監聽數據更新消息,當點擊界面的“Tab 2”時,Tab 1被隱藏并停止監聽消息,Tab 2被顯示。在我看來每一個UI Part具有Activated、Deactivated和Closed生命周期狀態,當處于Activated狀態時,UI Part顯示呈現所需數據,當處于Deactivated狀態時,UI Part被隱藏并停止更新數據,當處于Closed狀態時,UI Part被關閉并停止更新數據,它將被銷毀。生命周期管理功能提出的目的是為了實現生命周期變更驅動數據更新,也就是每一個組件數據更新是由其自身的生命周期狀態決定的,不需要由父節點控制,從而實現更大粒度復用。

2 UI Part組合和動態注入。這個功能允許直接在視圖容器類中定義每一個UI Part,在這種方式中,一旦容器被顯示,則所有的UI Part將被顯示;或者是其中某些UI Part是在運行時被動態注入并呈現的,當容器呈現時,根據需要注入特定的UI Part。

3 Master-Details UI Part支持。Master-Details UI Part是一對特殊的UI Part,當Master UI Part的數據發生變更后,Details UI Part也需要更新,和.NET的Master-Details View是一樣的。

4 采用Hook機制實現,使得在實現1~3功能的時候,可以盡量與標準控件兼容,不必創建自定義控件或者僅需創建非常簡單的自定義控件。Hook機制原理如下:A)每一個功能由一個Hook實現;B)比如LifecycleHook,對于一個葉子節點的組件,當其被顯示/隱藏/關閉時,該Hook要維護其狀態;對于一個容器節點,它除了要維護自己的狀態,還要維護子控件的狀態,比如VBox容器,當VBox被顯示時,其狀態為Activated且其所有一級子節點狀態也是Activated;而對于TabNavigator容器,當其被顯示時,其狀態為Activated且當前選中的Tab的狀態也是Activated,其余Tab的狀態都是Deactivated;C)Hook的創建過程是遞歸的監聽界面根節點onChildAdded/Removed事件;D)SDK提供Hook注冊表和Hook管理器,Hook注冊表定義了每一類型的組件對應的Hook,而Hook管理器定義了每一個控件對應的Hook實例。

5 基于該SDK,每一個視圖的設計由Workspace和UI Part組成,Workspace使用Flex標準容器控件定義了界面的布局;UI Part是界面每一部分功能的實現,自己封裝了生命周期驅動的數據更新。

代碼的設計比較簡單,其結構如下:

代碼的設計

ComponentTreeHook是整個Hook機制的核心類,它將遞歸監聽根節點控件的onChildAdded/Removed,當有子節點添加時,遞歸掛載整個控件樹,掛載過程代碼如下:

  1.  /**  
  2.   * Create the hooks for current component tree and listen the CHILD_ADD/CHILD_REMOVE  
  3.    * events of each component.  
  4.    *    
  5.    * @param comp The root component of the component tree.  
  6.    *   
  7.    */          
  8.   override public function hook(comp:UIComponent):void 
  9.  {  
  10.     if(!isHooked)  
  11.     {  
  12.          super.hook(comp);  
  13.          hookComponentTree(component);  
  14.      }  
  15.  }  
  16.    
  17.  private function hookComponentTree(comp:UIComponent):void 
  18.  {  
  19.      doComponentTreeHooking(comp, true, hookComponentNode);  
  20.  }  
  21.    
  22.  /**  
  23.   * Do the hooking for a component tree.   
  24.   * @param comp The root component.  
  25.   * @param hookComponentFunc The actual hook function.  
  26.   *   
  27.   */          
  28.  private function doComponentTreeHooking(comp : UIComponent, hooked : Boolean, hookComponentFunc : Function) : void 
  29.  {  
  30.      if(!comp)  
  31.      {  
  32.          return;  
  33.      }  
  34.        
  35.      // Hook the node from top to bottom.  
  36.      var queue : Array = [ comp ];  
  37.      var tempComp : UIComponent = null;  
  38.      var tempContainer : Container = null;  
  39.      var tempContainerChildren : Array;  
  40.      while(queue.length > 0)  
  41.      {  
  42.          // Get a component from queue.  
  43.          tempComp = queue.shift() as UIComponent;  
  44.          if(!tempComp)  
  45.          {  
  46.              continue;  
  47.          }  
  48.            
  49.          // Do the hook for this component.  
  50.          hookComponentFunc(tempComp);  
  51.            
  52.          // Get the children of current component and push them to queue.  
  53.          tempContainer = tempComp as Container;  
  54.          // SmartPart here is treast as a Component.  
  55.          if(tempContainer && !(tempContainer is ISmartPart))  
  56.          {  
  57.              if(hooked)  
  58.              {  
  59.                  tempContainer.addEventListener(ChildExistenceChangedEvent.CHILD_ADD, onChildAdded, false, CompositionEventPriority.CREATE_HOOK);  
  60.                  tempContainer.addEventListener(ChildExistenceChangedEvent.CHILD_REMOVE, onChildRemoved, false, CompositionEventPriority.DESTORY_HOOK);  
  61.              }  
  62.              else 
  63.              {  
  64.                  tempContainer.removeEventListener(ChildExistenceChangedEvent.CHILD_ADD, onChildAdded);  
  65.                  tempContainer.removeEventListener(ChildExistenceChangedEvent.CHILD_REMOVE, onChildRemoved);  
  66.              }  
  67.              tempContainerChildren = tempContainer.getChildren();  
  68.              for each(var child : UIComponent in tempContainerChildren)  
  69.              {  
  70.                  queue.push(child);  
  71.              }  
  72.          }  
  73.      }  
  74.  } 

原文標題:基于Flex的界面組合SDK

鏈接:http://www.cnblogs.com/baihmpgy/archive/2009/09/16/1567387.html;

【編輯推薦】

  1. Flex教程 Flex程序開發初步
  2. Flex垃圾回收和性能優化的一些總結
  3. Flex和Jsp之間中文參數的傳遞
  4. Flex編程中需要注意的Namespace用法
  5. Flex SDK 4:Gumbo的主題 極其快速的RIA開發
責任編輯:彭凡 來源: 博客園
相關推薦

2009-09-18 19:14:29

Hook機制

2010-08-10 10:44:22

Flex開發

2011-06-21 13:52:18

Qt 界面

2011-09-14 10:03:46

Android SDK

2010-07-29 11:03:53

Flex代碼格式化

2009-08-27 11:55:33

ibmdwPHP

2011-11-15 08:59:27

Adobe

2009-07-06 10:41:38

flex與servle

2010-08-10 16:50:13

Flex開發

2010-08-11 15:11:52

Flex組合框

2010-08-03 08:41:46

Flex4SDK配置

2009-10-16 15:06:13

VB.NET組合時間值

2011-08-18 10:02:47

iPhone SDKOpenFlow

2011-08-18 09:52:13

iPhone SDKUIPageContr

2009-08-05 14:17:27

ASP.NET錯誤頁面

2010-08-04 09:34:51

Flex設計

2011-04-19 10:57:18

2009-08-13 16:27:07

C#基于TCP協議

2010-08-06 15:11:44

Flex界面控件

2010-08-03 14:52:49

Flex界面設計
點贊
收藏

51CTO技術棧公眾號

久久99热国产| 欧美激情偷拍自拍| 色av一区二区| 欧美区二区三区| 91亚洲一线产区二线产区| 人成免费电影一二三区在线观看| 日韩极品在线观看| 欧美国产精品人人做人人爱| 青青草视频播放| 六九午夜精品视频| 无码av中文一区二区三区桃花岛| 五月婷婷综合色| 全国男人的天堂网| 欧美99久久| 亚洲欧美日韩视频一区| 日本55丰满熟妇厨房伦| 日本视频在线免费观看| 国产精品影视网| 97avcom| av永久免费观看| 成人午夜888| 欧美日韩国产中文字幕 | 欧美调教femdomvk| 一区二区免费电影| 天堂av资源在线| 久久99精品国产麻豆婷婷洗澡| 久久久久久国产| 国产精品综合激情| 久久狠狠久久| 欧美人妇做爰xxxⅹ性高电影 | 日韩激情啪啪| 69久久夜色精品国产69蝌蚪网| 成人免费观看cn| 精品欧美一区二区精品少妇| 亚洲网站视频| 一区二区三区www| 亚洲精品女人久久久| 99国内精品久久久久| 色综合天天天天做夜夜夜夜做| 美女黄色片网站| 成人在线免费电影| 97久久精品人人做人人爽| 成人精品久久久| 一二三区免费视频| 国产精品久久久久9999高清| 久久福利视频网| 1024手机在线观看你懂的| 精品五月天堂| 日韩天堂在线观看| 91丨九色丨蝌蚪| 中文一区一区三区高中清不卡免费| 亚洲激情av在线| 91在线观看免费高清| 国产无精乱码一区二区三区| 深夜福利一区| 911精品国产一区二区在线| 日日碰狠狠躁久久躁婷婷| 免费黄网站在线| 波多野结衣亚洲一区| 国产精品一区而去| 久久免费看少妇高潮v片特黄| 999精品视频在线观看| 欧美午夜宅男影院在线观看| 欧美资源一区| 你懂的在线观看| xfplay精品久久| 激情伦成人综合小说| 国产黄色美女视频| 国产精品自拍网站| 99re在线| 色一情一乱一区二区三区| 国产精品亚洲专一区二区三区| 99精彩视频在线观看免费| 国产精品羞羞答答在线| 狠狠色综合播放一区二区| 国产欧美日韩精品在线观看| 一级全黄少妇性色生活片| 美女视频黄 久久| 国产精品入口免费视频一| 国产精品suv一区| 日韩精品五月天| 日韩免费在线观看视频| 国产美女www| 美腿丝袜亚洲综合| 成人亚洲欧美一区二区三区| 国产美女三级无套内谢| 国产精品夜夜嗨| 痴汉一区二区三区| 婷婷色在线视频| 91一区一区三区| 欧洲av一区| 成人免费高清在线播放| 国产精品国产精品国产专区不蜜 | 正在播放欧美视频| 黄色国产在线播放| 9999国产精品| 欧美成人国产va精品日本一级| 久久免费看少妇高潮v片特黄| 欧美视频官网| 热久久视久久精品18亚洲精品| 四虎影院在线免费播放| 精品在线播放午夜| 成人看片视频| 日本高清中文字幕二区在线| 国产色爱av资源综合区| 欧美精品久久96人妻无码| 国产偷倩在线播放| 午夜国产精品一区| 亚洲黄色av网址| 久久免费精品| 亚洲丝袜在线视频| 操人视频免费看| jizz国产精品| 欧美三级日本三级少妇99| 一区二区三区四区毛片| 国产精品黄网站| 国产亚洲一区精品| 久久久久久久国产精品毛片| 久久久久99| 不卡视频一区二区三区| 国产亚洲依依| 一区二区成人在线观看| av无码精品一区二区三区| 三级欧美日韩| 国产一区二区三区久久精品 | 国产一卡不卡| 欧美日本精品在线| 亚洲图片欧美在线| 91婷婷韩国欧美一区二区| 日韩video| 高清成人在线| 亚洲成色777777在线观看影院| 性欧美丰满熟妇xxxx性仙踪林| 色综合狠狠操| 992tv成人免费影院| 亚洲天堂网在线视频| 国产无一区二区| 国产69精品久久久久久久| 欧美天堂一区| 国产午夜一区二区| 天海翼一区二区| 国产精品99久| 欧美 日韩 国产 在线观看| 综合日韩av| 日韩三级视频在线看| 美国黄色特级片| 久久精品中文| 久久精品国产美女| 国产网红在线观看| 日韩视频一区二区三区在线播放 | 男人亚洲天堂| 亚洲色图35p| 日韩黄色精品视频| 国产成人免费在线| 国产尤物av一区二区三区| 高清久久一区| 久久亚洲一区二区三区四区五区高| 久草热在线观看| 国产日韩精品久久久| 欧洲av无码放荡人妇网站| 麻豆一区二区麻豆免费观看| 欧美高清视频在线观看| 国产普通话bbwbbwbbw| √…a在线天堂一区| 午夜免费高清视频| 国产精品免费大片| 国产精品久久久久99| 黄色av网站在线看| 色狠狠桃花综合| 久久只有这里有精品| 亚洲自啪免费| 欧美激情一区二区三区在线视频 | 亚洲AV无码精品自拍| 亚洲免费毛片网站| 岛国av免费观看| 亚洲另类自拍| 欧美精品成人一区二区在线观看| 9lporm自拍视频区在线| 亚洲电影在线播放| 图片区乱熟图片区亚洲| 欧美激情1区2区| 国产精品国产三级国产专区53| av老司机在线观看| 国产丝袜一区二区| 日韩xxx视频| 国产精品成人免费在线| 国产精品igao网网址不卡| 欧美日韩p片| 久久99精品久久久久久久久久| 爱福利在线视频| 国产亚洲精品日韩| 国产一区二区在线视频观看| 亚洲激情第一区| 无码成人精品区在线观看| 国产精品入口66mio| 日本欧洲国产一区二区| 涩涩涩久久久成人精品| 亚洲精品www久久久| 黄色免费av网站| 中文字幕av在线一区二区三区| 污污网站免费观看| 欧美特黄一级| 茄子视频成人在线观看| 国产不卡精品| 97婷婷涩涩精品一区| 国产高清视频在线| 欧美一区二区不卡视频| 久久免费视频精品| 久久女同互慰一区二区三区| 91看片破解版| 极品裸体白嫩激情啪啪国产精品| 久久精品国产理论片免费| 日韩大陆av| 97精品久久久| 久草免费在线| 亚洲精品一区中文字幕乱码| 在线免费a视频| 亚洲第一激情av| 五月天免费网站| 99精品视频一区二区| 在线黄色免费观看| 中国女人久久久| 制服诱惑一区| 国产99精品| 亚洲aⅴ男人的天堂在线观看| www黄在线观看| 精品国产伦一区二区三区观看方式| 欧美一区二区三区网站| 亚洲一区在线观看视频| 日本wwww色| 男女男精品视频| 1024av视频| 欧美视频福利| 亚洲精品久久久久久一区二区| 久久91精品| 国产精品裸体一区二区三区| 国产a亚洲精品| 欧美中文在线字幕| 美女航空一级毛片在线播放| 欧美日本国产一区| 亚洲不卡在线视频| 欧美日韩精品二区| 国产香蕉在线视频| 一区二区三区资源| 波多野结衣欲乱| 国产三级一区二区| 9.1成人看片| 本田岬高潮一区二区三区| 国产人妻精品久久久久野外| 老司机午夜精品| 中文字幕欧美人妻精品一区| 午夜在线观看免费一区| 欧美乱大交xxxxx潮喷l头像| 欧美激情黄色片| 日韩高清在线播放| 欧美xxxx在线| 国新精品乱码一区二区三区18 | 久久综合亚洲社区| 男人影院在线观看| 久久精品国产91精品亚洲| 免费观看在线黄色网| 色综合亚洲精品激情狠狠| av影片免费在线观看| 国产小视频国产精品| 麻豆av电影在线观看| 精品视频久久久久久久| 色哟哟在线观看| 亚洲精品一区二区三区不| 激情在线视频| 亚洲无限av看| 香蕉视频免费在线播放| 亚洲欧美国产精品| 国产在线观看免费网站| 中文字幕久热精品在线视频| 嫩草影院一区二区| 精品亚洲国产视频| 成年人视频在线免费观看| 少妇高潮久久77777| 在线观看免费版| 亚洲性日韩精品一区二区| 黄色的视频在线免费观看| 中文字幕日韩av综合精品| 欧洲不卡av| 久久6免费高清热精品| 久草在线视频福利| 98精品在线视频| 欧美日韩精品一区二区三区视频| 国产精品嫩草影院久久久| 亚洲福利影视| 99在线影院| 蜜臀91精品国产高清在线观看| 相泽南亚洲一区二区在线播放| 香蕉视频官网在线观看日本一区二区| 成年人三级视频| 亚洲综合激情在线| 大陆av在线播放| 丝袜美腿亚洲综合| 成人黄色一级大片| 波多野结衣在线一区| 嘿嘿视频在线观看| 伊人色综合久久天天人手人婷| 日韩成人高清视频| 欧美三级午夜理伦三级中视频| www.麻豆av| 亚洲人成亚洲人成在线观看| www免费在线观看| 91成人国产在线观看| 另类一区二区三区| 国产91精品入口17c| 视频一区中文| av久久久久久| 日本伊人精品一区二区三区观看方式 | 欧美激情在线狂野欧美精品| 国产无遮挡裸体视频在线观看| 国产精品视频久久| 99久久人爽人人添人人澡 | 欧美一级淫片丝袜脚交| 四虎国产精品免费久久5151| 精品无人乱码一区二区三区的优势 | 在线看片不卡| 北条麻妃在线观看| 国模一区二区三区白浆| www.久久com| 国产精品不卡一区二区三区| 91香蕉在线视频| 欧美一级理论性理论a| 国产在线91| 午夜精品久久久久久久久久久久久| 国产精品99| 欧美精品与人动性物交免费看| 欧美女人交a| 一区二区三区网址| 久久综合久久99| 国产在线拍揄自揄拍无码视频| 欧美日韩色一区| 男女网站在线观看| 久久久伊人欧美| 黄色成人小视频| 欧美日韩精品中文字幕一区二区| 伊人久久成人| 少妇性l交大片7724com| 中文字幕一区二区三区在线播放| 天天做天天爱夜夜爽| 精品国产亚洲在线| dj大片免费在线观看| 国产日产亚洲精品| 欧美精品尤物在线观看| 中文字幕无码不卡免费视频| 99久久er热在这里只有精品15| 欧美日韩人妻精品一区二区三区| 欧美日韩一区二区三区在线看| 五十路在线观看| 久久精品国产69国产精品亚洲 | 午夜先锋成人动漫在线| 成人性生活视频免费看| 国产成人精品影院| 久久久国产成人| 日韩欧美色电影| 国产一二区在线观看| 亚洲综合国产精品| 亚洲欧美在线专区| 中文字幕1区2区| 一区二区三区久久| 亚洲大尺度网站| 欧美激情亚洲自拍| 成人爽a毛片| 成 年 人 黄 色 大 片大 全| eeuss国产一区二区三区| 久久9999久久免费精品国产| 亚洲国产日韩精品在线| 在线看片福利| 久久精品99久久| 久久久久久久欧美精品| 97人妻精品一区二区免费| 日本精品一区二区三区四区的功能| 黄色av免费在线观看| 国产欧美亚洲精品| 亚洲乱码精品| 美女又黄又免费的视频| 亚洲电影中文字幕在线观看| 少妇高潮一区二区三区99小说| 91精品国产成人www| 国产精品三级| 九一精品在线观看| 久久精品欧美一区二区三区麻豆 | 日韩精品久久| 网站在线你懂的| 亚洲一级片在线观看| 特级丰满少妇一级aaaa爱毛片| 青青久久av北条麻妃黑人| 精品国产乱码久久久久久1区2匹| 中文av一区二区三区| 一区二区三区在线影院| 亚洲av激情无码专区在线播放| 欧美性视频网站| 亚洲最大av| 国产熟女高潮一区二区三区| 在线精品视频小说1| 91一区二区三区在线| 激情久久av|