不同的使用者事件及其處理函式

2021-08-24 22:23:54 字數 2498 閱讀 6381

滑鼠事件

as 3 中滑鼠事件發生了顯著的變化。在 as 2 中,影片剪輯會自動新增滑鼠偵聽器。現在,要手動地為物件新增偵聽器。在 as 3 中滑鼠指標經過顯示物件時才能觸發滑鼠事件。在 as 2 中,無論滑鼠指標在**,只要執行 mousedown 或 mousemove 就會觸發所有的影片剪輯。而現在, mouseup 和 mousedown 事件與 as 2 中的 onpress 和 onrelase 等同。滑鼠事件的名稱是定義好的字串,像我們之前所提到的,最好使用 mouseevent 類的屬性,以避免輸入錯誤,下面是 mouseevent 類中所有可用的滑鼠事件屬性:

click

double_click

mouse_down

mouse_move

mouse_out

mouse_over

mouse_up

mouse_wheel

roll_out

roll_over

建立下面這個類,來測試一下,這個類會輸出發生在 sprite 影片上的滑鼠事件名稱。

package

private function init():void

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

請注意,每個事件型別都使用了同乙個處理函式,輸出所觸發的事件型別的名稱。

滑鼠位置

webjx.com

除了滑鼠事件外,對於文件類還有兩個非常重要屬性用於表示滑鼠當前的位置:mou*** 和 mousey。請注意,影片剪輯的位置,返回的值是滑鼠的位置與影片剪輯的註冊點的相對位置。例如,有乙個名為 sprite 的 sprite 影片,在舞台的 100,100 位置,而滑鼠的位置在 150,250,你會得到如下結果:

mou*** 為 150

mousey 為 250

sprite.mou*** 為 50

sprite.mousey 為 150

請注意滑鼠位置與影片位置的相對關係。

webjx.com

鍵盤事件webjx.com

鍵盤事件已被 as 3 劃分到另乙個區域中。例如,在 as 2 中,影片剪輯會自動偵聽鍵盤事件,但只在某種情況下才接收這些事件。所以,最好增加乙個專門用來做偵聽器的影片剪輯,有時,影片剪輯接收了多個事件但被看 作是乙個鍵盤事件,這樣就不對了。在 as 2 的組成框架中,很大部一部分都是為鍵盤互動服務的,比如 flash player 體系中的:tab(table)管理,焦點(focus)管理及在文字框中對於 enter 鍵與 table 鍵的處理等。現在好了,鍵盤事件的名稱與滑鼠事件的相似,都是定義好的字串,也可為 keyboardevent 類的屬性。只有兩種:

key_down

key_up

我們可以在乙個特殊的物件上偵聽鍵盤事件,就像上面那個滑鼠偵聽的例子一樣。為了實現這個功能,我們需要設定物件的焦點,以便能夠捕獲這些事件,可以這樣寫:

stage.focus = sprite;

webjx.com

在很多情況下,偵聽鍵盤事件是否有焦點很有意義,實現它只需直接對舞台進行鍵盤偵聽。下面看乙個示例:

webjx.com

package

private function init():void

public function onkeyboardevent(event:keyboardevent):void }}

鍵碼

通常人們並不關心乙個鍵是否被按下,而是關心按下的是什麼鍵。使用鍵盤事件處理有幾種方法可以讀取輸入的資訊。前面說到,乙個事件處理程式可以由一 個事件物件來觸發,該物件包括觸發這個事件的資料。在鍵盤事件中有兩個相關的屬性,事件所涉及的鍵:字元碼(charcode)和鍵碼 (keycode)。

字元碼指按下的鍵所表示的真正字元。例如,使用者按下」a」鍵,字元碼就是」a」,如果使用者同時又按著 shift 鍵,這樣字元碼就是」a」。

鍵 碼指按鍵所代表的數值。如果使用者按下」a」鍵,它所對應的鍵碼為 65,無論是否按著其它鍵。如果先按下shift鍵後按下「a」鍵,那麼會獲得兩個鍵盤事件,先是shift(鍵碼 16)後是 a(鍵碼 65)。 flash.ui.keyboard 類同樣也有一些屬性是針對非字母鍵的,我們不需要把它們背下來。例如: keyboard.shift 等於16,當 shift 鍵按下後,可以測試其是否等於 keyboard.shift。請本章的最後一段**:

package

private function init():void

public function onkeyboardevent(event:keyboardevent):void }}

} 當我們在 flash 編輯環境下測試影片時,ide會攔截用於控制 ide 自身的鍵。tab 鍵和所有功能鍵以及作為快捷選單項的鍵,在測試影片時不會接收到。不過,我們可以在選單中選擇「控制」 -> 「禁用快捷鍵」,來解除限制。這樣一來,測試的影片就像在瀏覽器中工作一樣了。

js事件相容處理(不同瀏覽器的事件相容處理)

var eventutil else if element.attachevent else removehandler function element,type,handler else if element.detachevent else getevent function event ge...

使用者控制項事件處理

本文討論使用者控制項返回事件的方法。假定使用者控制項 usercontrol.ascx 中包含按鈕控制項abutton,希望實現按abutton按鈕時,包含該使用者控制項的頁面可以接收到事件。為此,在使用者控制項和頁面的 中分別作了處理。usercontrol.ascx.cs中的處理 1.定義pub...

python事件處理函式 Python事件函式

事件context引數 context引數中包含一些函式執行時的資訊例如request id 臨時ak,您在 中可以使用這些資訊。資訊型別是fccontext。context引數的定義如下所示。class credentials def init self,access key id,access ...