Flex4 建立可被取消的預設事件處理器

2021-08-26 18:44:34 字數 1258 閱讀 8063

預設事件處理器用於在元件內部對某些事件進行預設動作相應,這在很多元件裡面都是很普

遍的。這樣元件可以觸發某些事件,預設對觸發的事件進行處理,比如在可關閉的titlewindow

視窗中,我們單擊頂部的關閉按鈕,titlewindow內部的預設關閉事件處理器對該事件進行響應,

執行關閉當前視窗的操作。這樣存在一種情況,有時候我們需要在關閉視窗前先提示使用者將要關

閉視窗,是否繼續等類似的提示,如果使用者確認需要關閉,那麼就關閉,否則不關閉。對於後面

的一種情況,我們需要阻止預設事件處理器的執行。類似的情況同樣發生在我們自行開發的一些

flex元件中,所以有必要討論一下如何建立乙個可被取消的預設事件處理器。

首先,我們要在元件外部自定義對事件的處理器,而且這個處理器的執行優先順序要高於默

認的事件處理器。也就是說,元件內部的事件處理器的優先順序要低於外部的處理器。對於元件

外部的事件處理器來說,應有某些方法可以阻止預設事件處理器的執行,具體的實現過程有4

個步驟:

1)在元件內部,建立事件時要設定該事件為可被取消,也就是要設定事件的cancelable標

誌為true,該標誌對應事件建構函式event()的第三個引數。

2)在元件內部,新增預設事件偵聽處理器時要使用eventpriority.default_handler優

先級,於是該事件的預設處理器的優先順序就低於普通的事件處理器的優先順序。

3)在元件外部,在自定義的事件處理器**中,要呼叫event.preventdefault()方法來阻止

事件在元件內部的預設事件處理器的執行。

4)在元件內部,預設的事件處理器**中使用event.isdefaultprevented()來檢測使用者是否

阻止了預設事件處理。

在元件的內部,我們定義了乙個alarm事件該事件的預設處理器用於處理alarm事件。

package

//一種簡單方法,觸發乙個可被取消的帶預設事件處理的事件。

public function triggeralarm():void

// "alarm"事件的預設處理

protected function handlealarm( event:event ):void

}} // end class

} // end package

一段簡單的測試**,我們定義了乙個alarm事件的偵聽器,在其內部呼叫

event.preventdefault()來阻止該事件的預設執行行為。

建立可被取消的預設事件處理器

建立可被取消的預設事件處理器 重要說明 本小節內容由閒雲野鶴傾情提供,謝謝他的分享。預設事件處理器用於在元件內部對某些事件進行預設動作相應,這在很多元件裡面都是很普遍的。這樣元件可以觸發某些事件,預設對觸發的事件進行處理,比如在可關閉的titlewindow視窗中,我們單擊頂部的關閉按鈕,title...

flex4 建立右鍵選單的bug

當使用 以下是方法 顯示子節點個數 private function tree labelfunc item xml string return item tree deps.labelfield suffix 在全域性上,定義三個欄目 private var mymenu contextmenu ...

Flex4 建立自定義Event

以載入乙個xml文件為例 首先建立乙個名為dataloader的actionscript class,用來處理資料載入和分析工作。package net public function load url string void protected function oncomplete event ...