在Flex中使用dispatchEvent() 方法

來源:互聯網
上載者:User

在組件 ActionScript 類檔案的本文中,您可以使用 dispatchEvent() 方法來廣播事件。dispatchEvent() 方法的文法如下:

dispatchEvent(eventObj)

eventObj 參數是一個描述事件的 ActionScript 對象

在調用 dispatchEvent() 方法之前,必須在代碼中對其進行聲明,如下所示:

private var dispatchEvent:Function;

此外,還必須建立一個事件對象以傳遞給 dispatchEvent()。該事件對象包含接聽程式可用來處理該事件的有關資訊。

在發送事件之前可以顯式地構建一個事件對象,如下面樣本所示:

var eventObj = new Object();
eventObj.type = "myEvent";
eventObj.target = this;
dispatchEvent(eventObj);

您也可以使用快捷文法在一行代碼中設定 type 屬性和 target 屬性的值,並發送事件:

ancestorSlide.dispatchEvent({type:"revealChild", target:this});

在上面的樣本中,由於 target 屬性是隱式的,因此,設定該屬性是可選操作。

Flash 8 文檔中對每個事件的說明列出了可選和必需的事件屬性。例如,ScrollBar.scroll 事件除了使用 type 和 target 屬性外,還使用 detail 屬性。有關詳細資料,請參閱"組件語言參考"中的事件說明。

公用事件

下表列出了由各種類廣播的公用事件。如果事件適用於組件,每個組件都應廣播這些事件。這裡沒有列出所有組件的全部事件,只列出了可能會由其它組件重新使用的事件。雖然某些事件未指定任何參數,但所有事件都有隱式參數:對廣播事件的對象的引用。

事件 使用
click 由 Button 組件使用,或在按一下滑鼠沒有其它含義時使用。
change 由 List、ComboBox 和其它文本輸入組件使用。
scroll 由 ScrollBar 和其它導致滾動(在滾動快顯功能表上滾動"緩衝器")的控制項使用。

此外,由於是從基類繼承而來,所有組件都廣播以下事件:

UIComponent 事件 說明
load 組件正在建立或載入其子物件。
unload 組件正在卸載其子物件。
focusIn 組件現在有輸入焦點。某些 HTML 等效組件(ListBox、ComboBox、Button、Text)還可以廣播 focus,但所有組件都廣播 DOMFocusIn。
focusOut 組件已失去輸入焦點。
move 組件已被移至新位置。
resize 組件大小已更改。

下表對一些常見的鍵事件進行說明:

鍵事件 說明
keyDown 按下某個鍵。code 屬性包含被按下鍵的鍵控代碼,ascii 屬性包含它的 ASCII 代碼。不要使用低級 Key 對象檢查,因為 Key 對象可能尚未產生該事件。
keyUp 釋放某個鍵。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.