function eventResponse(eventObject:EventType):void{//事件觸發後所要回應的處理程式(執行的動作)}eventTarget.addEventListener(EventType.EVENT_NAME,eventResponse);function eventResponse() 函式就是「處理事件偵聽程式」,用來回應事件發生所要執行的動作 (程式) 。 eventTarget 是「事件目標」,就是一個指定的物件實體的名稱。 addEventListener() 是將「偵聽程式」註冊給事件目標的方法,當參數 EventType.EVENT_NAME 指定的事件發生,事件目標就會被通知,接著呼叫參數 eventResponse 函式,並將「事件物件」傳遞過去給名為 eventObject 的參數。這可以想成,偵聽程式,是物件專為處理事件的「方法」。
舞台上加入二個按鈕物件分別用來停止 (名為 stopBtn) 和播放 (名為 playBtn) MovieClip 物件,及一個名為 mcA 的 MovieClip 物件。
import flash.display.*;import flash.events.*;function playClip(ev:MouseEvent):void{mcA.play();}function stopClip(ev:MouseEvent):void{mcA.stop();}playBtn.addEventListener(MouseEvent.CLICK,playClip);stopBtn.addEventListener(MouseEvent.CLICK,stopClip);有時候我們希望以事件目標作為執行動作的對象,例如,有好幾個 MovieClip 物件任一個被按一下就改變 alpha 屬性,那麼就沒辦法在事件處理函式中明確指定物件名稱了,此時可以利用事件物件的 currentTarget 或 target 屬性指向目前處理事件的目標物件或最內層的事件目標物件。
舞台上放入二個 MovieClip 物件分別名為 mcA, mcB 。
import flash.display.*;import flash.events.*;function chProp(ev:MouseEvent):void{ev.currentTarget.alpha-=0.1;}mcA.addEventListener(MouseEvent.CLICK,chProp);mcB.addEventListener(MouseEvent.CLICK,chProp);ev 是傳遞過來的事件物件, currentTarget 屬性會指出目前處理事件物件的事件目標物件,而 target 則會指向實際發生事件的最內層子物件;如果事件目標沒有子物件, currentTarget 及 target 物件是會一樣的。
舞台上放一個名為 linkBtn 按鈕物件。
import flash.display.*;import flash.events.*;import flash.net.*;function navTo(ev:MouseEvent):void{var uriAt:URLRequest=new URLRequest(指向位址的字串);navigateToURL(uriAt);}linkBtn.addEventListener(MouseEvent.CLICK, navTo);ev.currentTarget.x=100 //指定處理 ev 物件的目標物件的 x 座標為 100 px 。ev.target.x=100 //指定 ev 物件的事件目標物件的 x 座標為 100 px 。ENTER_FRAMEpublic static const ENTER_FRAME:String="enterFrame"Event.ENTER_FRAMEEXIT_FRAMEpublic static const EXIT_FRAME:String="exitFrame"Event.EXIT_FRAMEMOUSE_LEAVEStage 物件傳送。public static const MOUSE_LEAVE:String="mouseLeave"Event.MOUSE_LEAVECOMPLETEpublic static const COMPLETE:String="complete"Event.COMPLETESOUND_COMPLETEpublic static const SOUND_COMPLETE:String="soundComplete"Event.SOUND_COMPLETEADDEDDisplayObjectContainer.addChild()DisplayObjectContainer.addChildAt()public static const ADDED:String="added"Event.ADDEDREMOVEDREMOVED_FROM_STAGE 事件。以下方法會觸發此事件:DisplayObjectContainer.removeChild()DisplayObjectContainer.removeChildAt()public static const REMOVED:String="removed"Event.REMOVEDADDED_TO_STAGEDisplayObjectContainer.addChild()DisplayObjectContainer.addChildAt()public static const ADDED_TO_STAGE:String="addedToStage"Event.ADDED_TO_STAGEREMOVED_FROM_STAGEDisplayObjectContainer.removeChild()DisplayObjectContainer.removeChildAt()public static const REMOVED_FROM_STAGE:String="removedFromStage"Event.REMOVED_FROM_STAGEFocusEvent.FOCUS_INFocusEvent.FOCUS_OUTFocusEvent.KEY_FOCUS_CHANGEFocusEvent.MOUSE_FOCUS_CHANGEvar k:uint=ev.charCode //將 ev 物件的按鍵字元碼指定給 k 物件。var k:uint=ev.keyCode //將 ev 物件的按鍵代碼指定給 k 物件。var k:uint=ev.keyLocation //將 ev 物件的鍵盤位置碼指定給 k 物件。ev.updateAfterEvent() // ev 物件的事件發生後更新顯示畫面。KeyboardEvent.KEY_DOWNKeyboardEvent.KEY_UPlocalXx 區域座標,以物件本身為基準座標。localX:Numberlx=ev.localX; // 將目標物件發生事件的 x 區域座標,指定給 lx ; ev 為事件物件。localYy 區域座標,以物件本身為基準座標。localY:Numberly=ev.localY; // 將目標物件發生事件的 y 區域座標,指定給 ly ; ev 為事件物件。stageXx 全域座標,以舞台為基準座標。會隨著 localX 改變而自動改變。stageX:Number [唯讀]sx=ev.stageX; // 將目標物件發生事件的 x 舞台座標,指定給 sx ; ev 為事件物件。stageYy 全域座標,以舞台為基準座標。會隨著 localY 改變而自動改變。stageY:Number [唯讀]sy=ev.stageY; // 將目標物件發生事件的 y 舞台座標,指定給 sy ; ev 為事件物件。deltaMouseEvent.MOUSE_WHEEL 事件。delta:int [讀寫]if(ev.delta>0){ev.target.scaleX+=0.02;ev.target.scaleY=ev.target.scaleX;} // 在目標物件上滾動滾輪,放大物件; ev 為事件物件。updateAfterEvent()ev.updateAfterEvent() // ev 物件的事件發生後更新顯示畫面。MouseEvent.CLICKMouseEvent.MOUSE_DOWNMouseEvent.MOUSE_UPMouseEvent.MOUSE_OVERMouseEvent.MOUSE_OUTMouseEvent.MOUSE_MOVEMouseEvent.MOUSE_WHEELMouseEvent.DOUBLE_CLICKvar l:Number=ev.bytesLoaded //將 ev 物件作業中已載入的位元組數指定給 l 物件。var l:Number=ev.bytesTotal //將 ev 物件作業中載入檔的總位元組數指定給 l 物件。ProgressEvent.PROGRESSScrollEvent.SCROLLvar a:Number=ev.value //將 ev 物件的對應值指定給 a 物件。SliderEvent.CHANGETextEvent 的屬性與方法TextEvent 繼承 EventtextTextEvent.TEXT_INPUT 事件時,取得使用者輸入的字元組;在 TextEvent.LINK 事件時,取得 a 連結屬性值 (如 href='event:case') 其中 event 協定值的字串 (此例會取得 "case")。text:String [讀寫]var te:String=ev.text //將 ev 物件的輸入字元組內容指定給 te 物件。TEXT_INPUTpublic static const TEXT_INPUT:String = "textInput"TextEvent.TEXT_INPUTLINKpublic static const LINK:String = "link"TextEvent.LINK