**
偵聽的步驟:
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等以前的按鈕事件寫法已經基本退出了歷史的舞台.取而代之的是統一的管...