Re: [問題] addEventListener()

看板Flash作者 (CJ Cat)時間17年前 (2008/06/12 22:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《scars (超:新:星)》之銘言: : 不一樣 : 例如將一個Listener註冊到某Sprite好了 : 假設那個Sprite contains另一個 MovieClip : 在MovieClip點一下, : e.target 會是MovieClip : e.currentTarget 會是Sprite 講詳細一點的話,應該是這樣: spriteA包含spriteB 其中註冊的listener如下 spriteA.addEventListener(MouseEvent.CLICK, clickA); spriteB.addEventListener(MouseEvent.CLICK, clickB); 我在spriteB上面點一下 這個時候AS3跟AS2的event processing mechanism一大不同點出現了 AS3的Event有所謂的Event Flow 也就是一個Event object會從display list最底層(預設)傳到最上層 最底層的物件就是e.target 目前Event object傳送到的層級則是e.currentTarget 所以當你按下spriteB的時候 clickB會先執行,然後是clickA 對於clickB而言,e.target和e.currentTarget都是spriteB 對於clickA而言,e.target是spriteB,e.currentTarget則是spriteA 這種由下而上的路徑是所謂的bubble phase,預設註冊listener是監聽這一路徑 要監聽由上而下的capture phase的話 addEventListener()的useCapture參數要傳入true -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Blog http://cjcat.blogspot.com Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.74.144 ※ 編輯: cjcat2266 來自: 61.228.74.144 (06/12 22:48)
文章代碼(AID): #18KJ8Iaw (Flash)
文章代碼(AID): #18KJ8Iaw (Flash)