台灣最大程式設計社群網站
線上人數
1582
 
會員總數:246276
討論主題:189810
歡迎您免費加入會員
討論區列表 >> CSS/HTML5/Bootstarp >> 請問大大們 這題eventPhase~~
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問大大們 這題eventPhase~~
價值 : 50 QP  點閱數:1284 回應數:8
樓主

遠仔
門外漢
0 82
1372 260
發送站內信

FLA
AS
#21 middle.addEventListener(MouseEvent.CLICK, clickHandler);的輸出結果小弟我了解...

但#23 middle.addEventListener(MouseEvent.CLICK, clickHandler, true);的輸出結果小弟真的是看嘸~~>"<
大大們請問捕獲階段是麼意思啊?用途是什麼呢?

本篇文章發表於2012-08-20 13:57
1樓
回應

香帥
檢舉此回應
請參考
http://livedocs.adobe.com/flash/9.0_tw/ActionScriptLangRefV3/flash/events/EventPhase.html
CAPTURING_PHASE : uint = 1
[static] 捕捉階段,也就是事件流程的第一個階段。
AT_TARGET : uint = 2
[static] 目標階段,也就是事件流程的第二個階段。
BUBBLING_PHASE : uint = 3
[static] 反昇階段,也就是事件流程的第三個階段。

但#23 middle.addEventListener(MouseEvent.CLICK, clickHandler, true);
true 就是設定捕捉階段為 true
因此trace會顯示1
本篇文章回覆於2012-08-21 15:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

遠仔
檢舉此回應
帥大..請問..@@
小弟爬了很多文,並將CODE改為
//inner.addEventListener(MouseEvent.CLICK, clickHandler,true);
middle.addEventListener(MouseEvent.CLICK, clickHandler, true);
//outter.addEventListener(MouseEvent.CLICK, clickHandler,true);
做反覆測試..但小弟還是看不出來,它們之間輸出的關係哩>"<

想請問~~
外层容器,中层容器,内层容器=>以下簡稱 外容,中容,內容,當..
inner.addEventListener(MouseEvent.CLICK, clickHandler,true);
輸出為 - outter:外容,外容,2
middle:中容,中容,2
中容,外容,3
inner :內容,中容,3 //1.請問為何沒有階段1呢?
內容,外容,3

middle.addEventListener(MouseEvent.CLICK, clickHandler, true);
輸出為 - outter:外容,外容,2
middle:中容,外容,3
inner:內容,中容,1
內容,內容,2
內容,外容,3
outter.addEventListener(MouseEvent.CLICK, clickHandler,true);
輸出為 - outter:無反應 //2.請問為何沒有反應呢?
middle:中容,外容,1 //3.請問為何這裡有二個階段1呢?
中容,中容,2
inner:內容,外容,1
內容,內容,2
內容,中容,3
帥大拜託了~~T_T
本篇文章回覆於2012-08-24 16:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

遠仔
檢舉此回應
上文排版有點亂,小弟再PO一次~~

想請問~~
外层容器,中层容器,内层容器=>以下簡稱 外容,中容,內容,當..
inner.addEventListener(MouseEvent.CLICK, clickHandler,true);
輸出為
outter:外容,外容,2

middle:中容,中容,2
=======中容,外容,3

inner :內容,中容,3 //1.請問為何沒有階段1呢?
=======內容,外容,3


middle.addEventListener(MouseEvent.CLICK, clickHandler, true);
輸出為
outter:外容,外容,2

middle:中容,外容,3

inner:內容,中容,1
======內容,內容,2
======內容,外容,3


outter.addEventListener(MouseEvent.CLICK, clickHandler,true);
輸出為
outter:無反應 //2.請問為何沒有反應呢?

middle:中容,外容,1 //3.請問為何這裡有二個階段1呢?
=======中容,中容,2

inner:內容,外容,1
======內容,內容,2
======內容,中容,3

帥大拜託了~~T_T
本篇文章回覆於2012-08-24 16:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

遠仔
檢舉此回應
書上有段說明是...如果執行捕獲則不會執行冒泡,可是發佈時還是有看到很多階段3哩?
怎麼會這樣呢?
本篇文章回覆於2012-08-24 16:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

香帥
檢舉此回應
我由內而外點下去
內:
事件发生目标: 内层容器
正在侦听事件的当前目标:中层容器
事件当前阶段: 1
====================================
事件发生目标: 内层容器
正在侦听事件的当前目标:内层容器
事件当前阶段: 2
====================================
事件发生目标: 内层容器
正在侦听事件的当前目标:外层容器
事件当前阶段: 3
====================================

中:
事件发生目标: 中层容器
正在侦听事件的当前目标:外层容器
事件当前阶段: 3
====================================

外:
事件发生目标: 外层容器
正在侦听事件的当前目标:外层容器
事件当前阶段: 2
====================================
並沒有您說的
二個階段1呢1
(3#middle:中容,外容,1 //3.請問為何這裡有二個階段1呢?)
不知您有沒再改程式碼
原來的程式碼是以下這樣,對嗎?

本篇文章回覆於2012-08-25 19:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

香帥
檢舉此回應
補充5#程式碼21,24,25行,可如下圖27種變化

您全部做做看,然後點內外中容器共得出27*3=81種結果
圖第10種
外,中,內
T,F,F
就能解答您4樓的問題,會看到執行捕獲則不會執行冒泡如下
事件发生目标: 内层容器
正在侦听事件的当前目标:外层容器
事件当前阶段: 1
====================================
事件发生目标: 中层容器
正在侦听事件的当前目标:外层容器
事件当前阶段: 1
====================================

5#程式碼是圖第12種F,T,F
T,代表捕獲參數,TRUE
F,代表捕獲參數,FALSE(乃不加參數預設值)
X,代表不監聽
請有空試試27種就能得知81種結果,那您就能比較容易了解了
本篇文章回覆於2012-08-25 20:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
最有價值解答

香帥
檢舉此回應
更正6#T,F,F為T,X,X才對
圖第10種
外,中,內
T,X,X
就能解答您4樓的問題,會看到執行捕獲則不會執行冒泡如下
就能解答您4樓的問題,會看到執行捕獲則不會執行冒泡如下
事件发生目标: 内层容器
正在侦听事件的当前目标:外层容器
事件当前阶段: 1
====================================
事件发生目标: 中层容器
正在侦听事件的当前目标:外层容器
事件当前阶段: 1
====================================
本篇文章回覆於2012-08-25 21:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

遠仔
檢舉此回應
3Q~~
本篇文章回覆於2012-08-25 22:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.