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