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

全面認識Flex事件機制

開發 后端
你對Flex事件機制的概念是否了解,這里向大家簡單介紹一下,Flex事件機制是觀察者模式,即首先要注冊事件,事件分發后通過事件響應函數進行處理。

Flex有很多值得學習的地方,本文就向大家簡單介紹一下Flex事件機制,主要包括事件流,自定義事件等內容,相信通過本文的簡單介紹你對Flex事件機制一定會有深刻的認識。

Flex事件機制

Flex事件機制是觀察者模式,即首先要注冊事件,事件分發后通過事件響應函數進行處理。

例如在AS3中:
 

  1. button.addEventListener(“click”,onClick);//向button注冊一個click事件  
  2. internalfunctiononClick(evt:MouseEvent):void{txt.text=“clickabutton!”;}
  3. //事件響應函數 

那么注冊事件注冊什么呢?通過addEventListener注冊函數的參數可以看出,首先需要注冊事件類型(第一個參數),然后注冊響應函數,即事件發生后需要做什么事情,也就是說調用哪一個方法。

◆那么響應函數需要什么要求呢?

響應函數必須要一個參數,指明注冊的事件的事件類型,如上面的例子,我們注冊的是一個鼠標事件類型,即鼠標單擊事件。
注冊的事件類型必須和響應函數的事件類型一致!

◆到底有哪些事件類型呢?

除了有系統默認的事件類型外,我們可以定義自己的事件和事件類型。
簡單的說,事件類型就是定義在事件類的常量屬性。

Flex事件機制中的事件流

1.捕獲階段(從根節點到子節點,檢測對象是否注冊了監聽器,是則調用監聽函數)
2.目標階段(調用目標對象本身注冊的監聽程序)
3.冒泡階段(從目標節點到根節點,檢測對象是否注冊了監聽器,是則調用監聽函數)
注:事件發生后,每個節點可以有2個機會(2選1)響應事件,默認關閉捕獲階段。
從上到下(從根到目標)是捕獲階段,到達了目標后是目標階段,然后從目標向上返回是冒泡階段。

怎樣理解事件流?

當事件發生時,FLEX通過事件的分發器EventDispatcher進行事件分發,分發的順序是:從上往下到達目標,然后從下往上,從目標開始返回。如上面1、2、3所說的那樣,這里就會有一個問題,在事件的流經過程中,不是目標的對象如果注冊了事件,也有了相應的事件響應函數,那么不是目標的對象響應了事件的處理,這怎么辦呢?
由于上面說的那樣,addEventListener在只有如上兩個參數的牧人情況下是關閉捕獲階段的,也就是說事件流是從目標階段開始的,然后是冒泡階段,當出現容器包含控件的時候,可以使用判斷
if(evt.target==evt.currentTarget)
來確定當前事件流上的當前流經對象是否就是目標對象,如果是就進行相應的處理。

移除對象的事件流:removeEventListener(),參數與注冊事件相同。
阻斷事件流中目標對象的后繼事件,即通過了目標階段后阻止冒泡階段:
event類的方法:publicfunctionstopImmediatePropagation():void

Flex事件機制中的Event類

Event類作為創建Event對象的基類,當發生事件時,Event對象將作為參數傳遞給事件偵聽器。如MouseEvent、KeyboardEvent,更多的可以查參考手冊。

Event類有幾個常用的公共屬性:

是否冒泡:bubbles;
目標對象:target;
所處階段:eventPhase;
當前對象:currentTarget;
從參考手冊可以event類的構造函數:

Event()構造函數publicfunctionEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false)
創建一個作為參數傳遞給事件偵聽器的Event對象。
參數type:String—事件的類型,可以作為Event.type訪問。
bubbles:Boolean(default=false)—確定Event對象是否參與事件流的冒泡階段。默認值為false。
cancelable:Boolean(default=false)—確定是否可以取消Event對象。默認值為false。
在flash.events包中可以看見系統自帶的事件。

Flex事件機制中如何自定義事件

自定義事件,也就是向監聽器傳遞自己定義的事件類型,同時可以通過事件傳遞參數。

1.創建自定義事件名稱的Event

  1. dispatchEvent(newEvent(“myEvnet”,true,false)); 

2.創建自定義事件類

  1. PublicclassMyEventextendsEvent{  
  2. ….  

dispatchEvent是EventDispatcher的方法:publicfunctiondispatchEvent(event:Event):Boolean將事件調度到事件流中。事件目標是對其調用dispatchEvent()方法的EventDispatcher對象。
這句話就是說是哪個對象調用dispatchEvent(),那么該事件就會被分發到那個對象的事件流中,如果沒有指明對象,那么默認為this對象,即應用程序。這時該事件被分發到應用程序對象的事件流中,而沒有分發到特定對象的事件流中。一旦兩個對象的不是父子關系(控件樹),那么事件流不會在這兩個對象之間有聯系,那么事件不會被響應;如果是,則還是要響應。(這種情況dispatchEvent的參數Event對象的參數必須是三個,如上)。dispatchEvent就是說明有了新的事件,只要注冊了該事件,就可以響應。

【編輯推薦】

  1. Flex事件機制中監聽器注冊方式
  2. Flex事件機制中事件注冊通道和觸發方法
  3. 學習總結 在Flex中如何嵌入Flex字體
  4. 揭開Flex正則表達式的神秘面紗
  5. Flex數據綁定及其使用頻繁的幾種情況 

 

責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-28 12:58:24

Flex DateCh

2010-08-11 13:46:01

Flex安全沙箱

2010-07-29 09:00:29

Flex彈出窗口

2010-08-04 14:15:43

Flex應用程序

2010-08-04 13:52:53

Flex事件機制

2010-08-06 09:45:50

Flex事件機制

2010-08-06 10:03:42

Flex事件

2010-07-28 15:21:01

Flex函數

2010-08-04 14:07:59

Flex事件機制

2010-07-29 10:33:59

Flex鍵盤事件

2010-09-25 15:26:12

JVM垃圾回收

2010-08-13 13:56:02

Flex事件機制

2010-08-06 09:56:06

Flex事件機制

2010-08-12 16:28:51

Flex應用程序

2010-08-04 14:02:08

Flex事件機制

2010-08-09 11:06:01

Flex事件機制

2010-08-06 10:24:56

Flex事件分發

2010-07-06 16:13:13

HART協議

2010-07-26 17:01:03

Perl包

2010-08-09 09:47:34

Flex事件機制
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产手机 | 嫩草视频入口 | 影视一区 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 在线日韩视频 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 日韩一区二区三区在线看 | 颜色网站在线观看 | 国产精品久久福利 | 91资源在线 | 美女人人操 | 国产精品久久久久无码av | 国产一二三视频在线观看 | 一区二区三区亚洲 | 精品欧美一区二区精品久久 | 国产一区不卡 | 国产高清视频一区 | 久久国产高清 | 国产精品高潮呻吟久久 | 老司机午夜性大片 | 久久久国产精品网站 | 久久成人精品视频 | 午夜在线观看视频 | 国产精品区二区三区日本 | 欧美三级三级三级爽爽爽 | www.奇米| 久久久久国产一区二区三区不卡 | 丝袜美腿一区二区三区动态图 | 国产91丝袜在线播放 | 亚洲精品一区av在线播放 | 欧美 中文字幕 | 亚洲一在线 | 色伊人久久| 国产资源在线观看 | 国产区高清 | 成人综合一区二区 | 欧美午夜精品 | 国产成人综合在线 | 亚洲a网 | 国产蜜臀 | 三级av在线 |