1.不[S1]是所有的事件都有三個(gè)階段:Capture,Target,Bubbling。
事件只有在DisplayObject才上有Capturing和Bubbling階段。
2.Target是派發(fā)該事件的對(duì)象。CurrentTarget是監(jiān)聽了該事件并正在處理該事件的對(duì)象。
3.Capturing[S2]流程:StageàSystemManageràApplicationà…à派發(fā)該事件的父對(duì)象。
4.Bubbling[S3]流程:派發(fā)該事件的父對(duì)象à…àApplicationàSystemManageràStage。
5.在mxml標(biāo)簽中定義的事件監(jiān)聽器是無法用removeEventListener()去掉的,并且無法設(shè)置useCapture和priority屬性。
6.用removeEventListener()去掉未添加的事件器時(shí)是不會(huì)報(bào)錯(cuò)的,所有無需用hasEventListener()判斷,但添加時(shí)需要判斷,否則可能會(huì)添加多次。
7.Priority越大的監(jiān)聽器,越先執(zhí)行。
8.weakRef[S4]對(duì)于非內(nèi)嵌函數(shù)沒用。
9.一個(gè)對(duì)象可以給同一個(gè)事件多個(gè)監(jiān)聽器:
假如按添加順序是eventListener1,eventListener2和eventListener3。eventListener1沒有調(diào)stopPropagation()和stopImmediatePropagation()方法。假設(shè)eventListener2調(diào)了其中[S5]的stopPropatation(),則eventListener3還會(huì)繼續(xù)執(zhí)行。但如果eventListener2調(diào)的是stopImmediatePropagation(),則eventListener3不會(huì)繼續(xù)執(zhí)行。
10.removeEventListener()只能一次去掉一個(gè)監(jiān)聽器,為同一個(gè)事件添加了幾個(gè)監(jiān)聽器就需要調(diào)幾次removeEventListener(),而且參數(shù)要相符[S6]。
11.hasEventListener()與willTrigger()的區(qū)別是:hasEventListener()只檢查它所屬的對(duì)象,而willTrigger[S7]()檢查整個(gè)事件流以查找由type參數(shù)指定的事件。
12.keyCode[S8]對(duì)應(yīng)的是key在鍵盤上的鍵值,是一個(gè)數(shù)字;charCode對(duì)應(yīng)的是該key在當(dāng)前字符集中的值,也是一個(gè)數(shù)字。因此就有下面的情況發(fā)生:1和!的keyCode是一樣的,但他們的charCode是不一樣的。
[S1]事件只有在DisplayObject才上有Capturing和Bubbling階段。
[S2]從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的父對(duì)象
[S3]從葉節(jié)點(diǎn)的父對(duì)象到根節(jié)點(diǎn)
[S4]如果設(shè)為true,只有內(nèi)嵌函數(shù)可能會(huì)被垃圾回收器處理。
[S5]指stopPropagation()和stopImmediatePropagation()
[S6]use_capture
[S7]包括檢查所有的父對(duì)象。
[S8]keyCode和keyChar都是KeyBoardEvent的屬性。
新聞熱點(diǎn)
疑難解答