ActionScript從入門到高手教程全集(六) 事件處理
ActionScript從入門到高手教程全集(六) 事件處理
事件處理機制是as3.0特色,也是開發人員的困惑,。ActionScript 3.0 事件模型不僅方便,而且符合標準,它與 Adobe Flash Player 9 顯示列表完美集成在一起。一起來看一下flash中的事件處理。
無論何時編寫事件偵聽器代碼,該代碼都會采用以下基本結構。
function eventResponse(eventObject:EventType):void
{
// 此處是為響應事件而執行的動作。
}
eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse);
下面參考列表包含將會在本章中遇到的重要術語:
■ 默認行為 (Default behavior):某些事件包含通常與事件一起發生的行為 (稱為默認行
為) 。例如,當用戶在文本字段中鍵入文本時,將引發文本輸入事件。該事件的默認行為
是實際顯示在文本字段中鍵入的字符,但您可以覆蓋該默認行為(如果由于某種原因,
您不希望顯示鍵入的字符) 。
■ 調度 (Dispatch):通知事件偵聽器發生了事件。
■ 事件 (Event):對象可以通知其它對象它所發生的情況。
■ 事件流 (Event flow):如果顯示列表中的對象 (屏幕上顯示的對象)發生事件,則會向
包含該對象的所有對象通知此事件,并依次通知其事件偵聽器。此過程從舞臺開始,并
在顯示列表中一直進行到發生事件的實際對象,然后再返回到舞臺。此過程稱為事件流。
■ 事件對象 (Event object):此對象包含發生的特定事件的相關信息,當調度事件時,此信
息將被發送到所有偵聽器。
■ 事件目標 (Event target):實際調度事件的對象。例如,如果用戶單擊位于 Sprite(位
于舞臺內)內的.按鈕,所有這些對象將調度事件,但事件目標是指實際發生事件的對象,
此處指單擊的按鈕。
■ 偵聽器 (Listener):對象或在對象中注冊其自身的函數,用于指示發生特定事件時應通
知它。
定義為類方法的偵聽器函數
下面的示例與前面定義 ClickExample 類的示例相同,只是將 clickHandler() 函數定義為
ChildSprite 類的方法:
package
{
import flash.display.Sprite;
public class ClickExample extends Sprite
{
public function ClickExample()
{
var child:ChildSprite = new ChildSprite();
addChild(child);
}
}
}
import flash.display.Sprite;
import flash.events.MouseEvent;
class ChildSprite extends Sprite
{
public function ChildSprite()
{
graphics.beginFill(0xFF0000);
graphics.drawRect(0,0,100,100);
graphics.endFill();
addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(event:MouseEvent):void
{
trace("clickHandler detected an event of type: " + event.type);
trace("the this keyword refers to: " + this);
}
}
當用戶通過單擊紅色正方形與生成的 SWF 文件交互時,Flash Player 生成以下跟蹤輸出:
clickHandler detected an event of type: click
the this keyword refers to: [object ChildSprite]
請注意,this 關鍵字引用名為 child 的 ChildSprite 實例。
【ActionScript從入門到高手教程全集(六) 事件處理】相關文章:
1.ActionScript從入門到高手教程全集(四)錯誤處理
2.ActionScript從入門到高手教程全集(三)字符串的處理
3.ActionScript從入門到高手教程全集(七)幾何相關的類
4.ActionScript3.0從入門到高手教程全集(二)日期和定時器的處理