8.2 事件機制的工作流程
8.2.1 關於事件流
目標物件:派發事件的物件
當事件發生後生成乙個攜帶資料的物件,然後檢查目標物件是否存在顯示層中,並遍歷從根容器一直到目標物件所在位置的所有物件,以樹形勢表示。自動檢測所經過的節點是否註冊了***。
事件流暗執行流程分為3步:
每個事件物件都有以下屬性:
target:事件的派發者
currenttarget:當前正在檢測的的物件,幫助跟蹤事件傳播的過程。
預設情況下,捕獲功能處於關閉狀態,一般沒有必要進行捕獲跟蹤。
事件只在bubbles 屬性為true 時才進行冒泡,可以冒泡的事件包括:change、click、doubleclick、keydown、keyup、mousedown、 mouseup。並且不能在乙個***中同時開啟捕獲和冒泡功能,要做到這一點,只能註冊兩個***,分別實現。
addeventlistener(
type:string, 事件的型別
listener:function, 監聽函式
usecapture:boolean = false, 是否開啟捕獲功能
priority:int = 0, ***優先級別
useweakreference:boolean = false 是否使用弱引用
)如果usecapture 為true,開啟了捕獲功能,則該元件的冒泡階段被取消。
只有視覺化的物件有3個階段,而像xml等非視覺化物件只有目標階段。
8.2.2 事件物件
eventdispatcher 是派發事件的**,經它派發的事件物件必須是event型別或者event的子類。
event物件中包含目標物件存放的資料,這些資料都成為event的屬性,以供偵聽器使用:
event的屬性:
建構函式:
event(
type:string, 事件型別
bubbles:boolean = false, 是否冒泡
cancelable:boolean = false 是否可以停止 )
event 的方法:
8.2.3 偵聽和響應事件--乙個偵聽鍵盤事件的例子
要偵聽乙個事件,首先要建立乙個函式來作為事件處理器,然後將這個函式註冊給相應的時間型別。
this.addeventlistener(keyboardevent.key_down,keyhandler);
keydown="keyhandler(event)" 這種情況無法移除事件。
註冊了事件***,使用完畢後,必須使用removeecentlistener 方法刪除監聽函式:
removeecentlistener(
type:string, 事件型別
listener:function, 監聽函式
usecapture:boolean = false 是否開啟捕獲功能,如果註冊時開啟,移除也要開啟。 )
Flex學習 事件機制的工作流程
8.2 事件機制的工作流程 8.2.1 關於事件流 目標物件 派發事件的物件 當事件發生後生成乙個攜帶資料的物件,然後檢查目標物件是否存在顯示層中,並遍歷從根容器一直到目標物件所在位置的所有物件,以樹形勢表示。自動檢測所經過的節點是否註冊了 事件流暗執行流程分為3步 每個事件物件都有以下屬性 tar...
mybatis的工作流程,快取機制
一級快取 mybatis的一級快取是sqlsession級別的快取,在運算元據庫時需要構造sqlsession物件,在物件中有乙個hashmap用於儲存快取資料,不同的sqlsession之間快取資料區域 hashmap 是互相不影響的。一級快取的作用域是sqlsession範圍的,當在同乙個sql...
機器學習的工作流程
打造乙個機器學習的應用程式,從工作流程方面熟悉整體的步驟,對後面深入學習有很大的幫助。整個過程有六個步驟 機器學習中的資料,可以來自不同的資料來源,可能是csv檔案,也可能是從伺服器拉取出來的日誌,或者是自己構建的web爬蟲。獲取了資料,下一步進行合理地檢查資料,最好的方法是發現不可能或幾乎不可能的...