成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Flex事件機制中事件處理和監聽器注冊方法指導

開發 后端
本文向大家介紹一下Flex事件機制中Flex事件處理和監聽器注冊方面的知識,事件處理是GUI開發的重要組成部分,早在傳統的Client/Server開發中,事件驅動的開發法就已經是GUI開發的主流。

在學習Flex的過程中,你可能會遇到Flex事件機制方面的問題,這里和大家分享一下Flex事件處理和Flex事件監聽器注冊的概念,希望本文的介紹能讓你有所收獲。

Flex事件機制

事件處理是GUI開發的重要組成部分,早在傳統的Client/Server開發中,事件驅動的開發法就已經是GUI開發的主流。

1.Flex事件處理

軟件開發者在開發過程中只關注某個組件響應某個事件后所做的操作,即被驅動的操作,而不用像結構化線形開發那樣去關注驅動事件的動作。響應特定事件的組件叫做事件監聽器(EventListener)。

一個用于交互的GUI組件會被預先定義它可能遇到的事件,軟件開發者即可根據開發需求來編寫事件監聽器,響應部分或全部的事件觸發,圖1.7展示了這個觸發過程。作為開發者,我們首先需要了解特定的GUI交互組件支持哪些事件,之后便可以根據需求寫出相應的事件監聽器。

圖1.7GUI系統中Flex事件機制的Flex事件處理流程

 

在示例1.2和示例1.3中,我們已經使用到了Flex的事件機制,Flex開發基于ActionScipt對象,事件已經作為Flex可視化組件的屬性。我們可以在MXML中直接為組件的事件屬性設定事件監聽方法或者代碼。

在示例1.2中,我們設定<mx:Button>的單擊事件(click)屬性為click=“changeText()”,并寫了一個changeText方法作為單擊事件的監聽器。這樣,當單擊Button的時候,就會觸發Button的click事件,changeText方法將被調用。而在示例1.3中,我們把ActionScript腳本直接復制給了click,這樣整個腳本將作為一個事件監聽器。Flex可視化組件開發的事件處理方式與HTML頁面開發中的JavaScript腳本使用是非常相似的。

如果我們需要在事件監聽器中處理事件源,即產生事件的組件,那么需要為事件監聽的方法傳遞參數event,例如可以對示例1.2中事件監聽方法的定義和<mx:Button>的事件屬性做一些修改。

(1)事件監聽方法定義的修改:

  1. publicfunctionchangeText(event:Event):void 

(2)Button事件屬性的修改:

  1. <mx:Buttonlabelmx:Buttonlabel="點擊這里"fontSize="16"click="changeText(event)"/> 


在Button事件屬性的修改中,event作為一個關鍵字來使用,而非自定義變量,因此我們可以在標簽中直接使用event來創建當前組件所觸發的事件對象。

ActionScript類Event構建的時候會把事件源組件作為一個成員屬性,這樣在事件監聽器中,我們可以通過event來操作事件源組件。

在MXML中設定事件屬性值的方式叫做事件監聽器內建。這種方式適合應用在簡單的事件處理上。如果遇到需要多個事件監聽器聯合使用等復雜的事件處理情況,則需要應用Flex的事件注冊。

2.Flex事件機制中事件監聽器注冊

Flex的可視化組件對象都繼承了EventDispatcher類,因此它們都支持事件注冊方法addEventListener。該方法的定義如下:

  1. addEventListener(type:String,listener:Function,  
  2. useCapture:Boolean=false,priority:int=0,  
  3. useWeakReference:Boolean=false):void 


通過addEventListener方法,我們可以為可視化組件注冊一個事件監聽器。type參數表明事件監聽器的類型,如鼠標單擊事件(MouseEvent.CLICK);listener參數是事件監聽器的具體方法;useCapture參數設定是否在事件的捕獲階段就進行響應;priority參數設定事件監聽器的優先級;useWeakReference參數設定事件監聽器方法是否為弱類型,一個強類型的事件監聽器方法是不會被Flex進行自動垃圾收集的。

先前我們提到的事件監聽器內建方式,實際上已經創建了一個默認的事件監聽器方法,并把ActionScript腳本的內容寫入方法,但這種方法的最大不足就是無法操作一個以上的事件監聽器。

而使用addEventListener方法注冊事件監聽器的方式,我們可以控制事件響應的捕獲方式和優先級;當我們已經添加的事件監聽器在程序的運行過程中需要取消掉的時候,我們可以通過removeEventListener方法來實現。而這些功能在事件監聽器內建方式中不會被支持,理由也很明了:內建的事件監聽器都是匿名的,我們無法引用到匿名監聽器的監聽實體方法。

因此,在使用Flex事件機制的時候,還是應該盡量選用事件監聽器注冊的方式來構建事件處理,這將為事件交互處理帶來更多的可擴展性。

【編輯推薦】

  1. 解析Flex事件機制中Flex事件分發和監聽
  2. Flex事件機制中事件注冊通道和觸發方法
  3. Flex框架中Cairngorm和Mate的優點大比拼
  4. FlexBuilder3.0與Eclipse3.4的完美結合
  5. 解析Flex應用開發步驟 新特性和技術框架 

 

責任編輯:佚名 來源: blueidea.com
相關推薦

2010-08-09 11:06:01

Flex事件機制

2010-08-06 09:56:06

Flex事件機制

2010-08-06 10:03:42

Flex事件

2010-08-13 14:05:24

Flex事件機制

2010-07-29 10:33:59

Flex鍵盤事件

2009-06-22 09:23:18

事件監聽器

2009-07-17 09:55:02

事件監聽器SWT和SwingAWT

2020-12-15 10:46:29

事件監聽器Spring Boot

2021-07-08 07:52:49

容器監聽器Event

2012-02-03 13:27:16

2010-08-04 13:52:53

Flex事件機制

2010-08-06 09:45:50

Flex事件機制

2010-08-12 15:35:44

Flex事件機制

2022-11-16 08:33:29

監聽Spring監聽器

2010-08-09 11:14:36

Flex事件處理

2010-08-04 14:07:59

Flex事件機制

2023-11-02 08:10:13

框架Spring程序事件

2023-11-01 07:55:03

事件監聽器傳遞數據

2010-08-04 11:15:22

Flex事件處理

2010-08-13 13:56:02

Flex事件機制
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 6080亚洲精品一区二区 | 久久精品国产久精国产 | 亚洲91精品 | 国产精品免费观看 | 伊大人久久 | 久久亚洲一区二区三 | 欧美日产国产成人免费图片 | 国产精品久久久免费 | 精品中文在线 | 国产成人免费视频网站视频社区 | 99成人| 亚洲综合视频 | 日韩一区二区三区视频 | 精品久久影院 | 成人性视频免费网站 | 日韩成人在线视频 | 午夜寂寞影院在线观看 | 亚洲精品影院 | 精品视频一区二区三区在线观看 | 国产精品视频 | 久久久久国 | 日本不卡在线观看 | 亚洲一区国产精品 | 久久久久久成人 | 国产欧美一区二区三区另类精品 | 日韩精品在线网站 | 精品国产乱码久久久久久a丨 | 久久中文字幕一区 | 97狠狠干| 色婷婷精品国产一区二区三区 | 免费成年网站 | 日韩精品999 | 国产欧美精品一区 | 国产亚洲精品精品国产亚洲综合 | 操人网站 | 欧美一区二不卡视频 | 精品国产一级 | 国产精品视频网 | 日韩一区在线观看视频 | 日韩视频成人 | 成人国产精品久久 |