AS3事件偵聽

2021-08-29 15:33:55 字數 1405 閱讀 8982

**

偵聽的步驟:

1、使用者( listener ) 將 自己 新增到 事件源 的使用者名單(目錄)中去。 使用者.addeventlistener( 事件源.事件, 處理函式 );  

2、當事件發生時,事件源將訊息傳送給訂閱了該事件的使用者。(通過查詢使用者名單,通知每乙個名單上的使用者)

3、系統按照事先的「約定」,執行相關的函式。

特點:事件源 可以同時向多個使用者傳送訊息,或者說被多個使用者觀注(偵聽)。(所以是偵聽物件?)

使用者 可以同一時間接收不同的訊息,或者說偵聽不同的事件,所以將訊息的使用者也稱偵聽器。

使用者與使用者之間沒有必然的關係,接收同一訊息的前後次序由系統決定,基本上是同時收到訊息。

具體到乙個物件,有可能既是 某些訊息的發出者(事件源),又是某些事件的接收者(偵聽器)。

關於滑鼠事件:

當顯示物件中具有實際的內容時,它才能感受(偵聽)到(它自己的)滑鼠相關的事件。

當滑鼠在 顯示物件中完整的進行了一次按下、抬起之後,才會觸發 click 事件。

在物件的外面按下,裡面抬起時,只觸發 mouseup 事件。

在物件的裡面按下,外部抬起,只觸發 mousedown 事件。(也就是說 有效的按下 和 有效的抬起 並不總是同時出現)

click  事件總是在 mouseup 事件之後才發生的。

如果希望在全屏中實現隨意畫線,那麼應該通過 stage 屬性去偵聽發生在舞台上的滑鼠事件。

stage 是顯示物件的乙個屬性,通過它可以訪問舞台的相關屬性內容。

例一: 下面的類當做是文件類時,可以在舞台的所有位置進行畫線,因為它是對舞台上的滑鼠事件進行的偵聽。

package

public function startdrawing( event:mouseevent ):void

public function draw( event:mouseevent ):void

}public function stopdrawing( event:mouseevent ):void }}

package

public function onmd(evt)

public function onmousemove( evt:mouseevent )

public function onmu(evt)} }

事件處理函式需要指定乙個引數,該引數為 event 型別,通過 target 屬性和currenttarget 屬性,可以訪問到發生事件的直接物件,**形式為  evt.target evt.currenttarget 。

示例三: 分聽偵聽舞台事件 和 元件中的事件,可以發現兩者的作用範圍不同。

package

private function onmd (evt)

public function onmousedown(evt)}}

as3按鈕事件

在剛開始學as3時,如果不知道按鈕的事件如onpress的話,實在是件很沒有頭緒的事情。在 as3.0中,所有的時間都已經被event統一管理了.相對as2.0來說,按鈕事件是在as3中變動最大的事件.在as3.0中例如onpress等以前的按鈕事件寫法已經基本退出了歷史的舞台.取而代之的是統一的管...

as3按鈕事件

在剛開始學as3時,如果不知道按鈕的事件如onpress的話,實在是件很沒有頭緒的事情。在 as3.0中,所有的時間都已經被event統一管理了.相對as2.0來說,按鈕事件是在as3中變動最大的事件.在as3.0中例如onpress等以前的按鈕事件寫法已經基本退出了歷史的舞台.取而代之的是統一的管...

as3按鈕事件

在剛開始學as3時,如果不知道按鈕的事件如onpress的話,實在是件很沒有頭緒的事情。在 as3.0中,所有的時間都已經被event統一管理了.相對as2.0來說,按鈕事件是在as3中變動最大的事件.在as3.0中例如onpress等以前的按鈕事件寫法已經基本退出了歷史的舞台.取而代之的是統一的管...