欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Flex事件機制如何使用

本篇文章給大家分享的是有關Flex事件機制如何使用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)公司提供成都網(wǎng)站建設、成都網(wǎng)站設計、網(wǎng)頁設計,品牌網(wǎng)站建設廣告投放等致力于企業(yè)網(wǎng)站建設與公司網(wǎng)站制作,10多年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設,成功案例突破近千家,是您實現(xiàn)網(wǎng)站建設的好選擇.

Flex事件機制

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

例如在AS3中:

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

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

那么響應函數(shù)需要什么要求呢?響應函數(shù)必須要一個參數(shù),指明注冊的事件的事件類型,如上面的例子,我們注冊的是一個鼠標事件類型,即鼠標單擊事件。
注冊的事件類型必須和響應函數(shù)的事件類型一致!到底有哪些事件類型呢?除了有系統(tǒng)默認的事件類型外,我們可以定義自己的事件和事件類型。簡單的說,事件類型就是定義在事件類的常量屬性。

Flex事件機制中的事件流

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

怎樣理解事件流?

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

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

Event類

Event類作為創(chuàng)建Event對象的基類,當發(fā)生事件時,Event對象將作為參數(shù)傳遞給事件偵聽器。如MouseEvent、KeyboardEvent,更多的可以查參考手冊。
Event類有幾個常用的公共屬性:
◆是否冒泡:bubbles;
◆目標對象:target;
◆所處階段:eventPhase;
◆當前對象:currentTarget;
從參考手冊可以event類的構(gòu)造函數(shù):

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

如何自定義事件

Flex事件機制中的自定義事件,也就是向監(jiān)聽器傳遞自己定義的事件類型,同時可以通過事件傳遞參數(shù)。

1.創(chuàng)建自定義事件名稱的Event

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

2.創(chuàng)建自定義事件類

PublicclassMyEventextendsEvent{  ….  }

dispatchEvent是EventDispatcher的方法:publicfunctiondispatchEvent(event:Event):Boolean將事件調(diào)度到事件流中。事件目標是對其調(diào)用dispatchEvent()方法的EventDispatcher對象。
這句話就是說是哪個對象調(diào)用dispatchEvent(),那么該事件就會被分發(fā)到那個對象的事件流中,如果沒有指明對象,那么默認為this對象,即應用程序。這時該事件被分發(fā)到應用程序?qū)ο蟮氖录髦校鴽]有分發(fā)到特定對象的事件流中。一旦兩個對象的不是父子關系(控件樹),那么事件流不會在這兩個對象之間有聯(lián)系,那么事件不會被響應;如果是,則還是要響應。(這種情況dispatchEvent的參數(shù)Event對象的參數(shù)必須是三個,如上)。dispatchEvent就是說明有了新的事件,只要注冊了該事件,就可以響應。

以上就是Flex事件機制如何使用,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標題:Flex事件機制如何使用
瀏覽路徑:http://www.chinadenli.net/article22/igpejc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站網(wǎng)站改版定制網(wǎng)站響應式網(wǎng)站微信公眾號企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設