alright, let's go to see the addEventListener
滑鼠偵聽事件
當我們滑鼠移入到某個區域, 姑且稱這個區域為感應區(Hit)吧
會發生的事件大部份有 滑鼠一般(Up) 滑鼠滑入(Over) 滑鼠按下(Over) 滑鼠双擊 滑鼠滾輪等事件
以下為一範例程式碼:
package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.*;
// 處理滑鼠事件
public class MouseEx extends Sprite {
private var label_content:TextField; // 標籤
private var mouse_state:String ="放開"; // 滑鼠按下
private var mouse_Delta:int =0; // 滾輪
// 建構子
public function MouseEx()
{
// 創造一個被當成點選對象的 Sprite
// 我們想判斷滑鼠有無點選, 建立一個黃色矩形區域來判斷
var base:Sprite=new Sprite();
base.graphics.beginFill(0xFFFF66); //黃色矩形
base.graphics.drawRect(20,20,240,240); //感應區大小
base.graphics.endFill(); //填滿效果
addChild(base); //把孩子叫到舞台出來
// 加入標籤
label_content=makeLabel("滑鼠事件");
base.addChild(label_content);
// 加入事件偵聽者
base.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler); //加在黃色矩形區塊.一般
base.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler); //加在黃色矩形區塊.按下
base.addEventListener(MouseEvent.MOUSE_WHEEL,mouseWheelHandler); //加在黃色矩形區塊.滾輪
// 加入計時器
var timer:Timer=new Timer(900,0);//時間設定長一點才可以看到滑鼠事件這4個字
timer.addEventListener(TimerEvent.TIMER,onTick);
timer.start();
}
// 處理按下滑鼠的事件
private function mouseDownHandler(evt:MouseEvent):void {
mouse_state="按下";
}
// 處理一般(放開)滑鼠的事件
private function mouseUpHandler(evt:MouseEvent):void {
mouse_state="放開";
}
// 處理滾輪事件
private function mouseWheelHandler(eventt:MouseEvent):void {
mouse_Delta+=eventt.delta;
}
// 處理計時器事件
private function onTick(evt:TimerEvent):void {
var text:String="";
text+="按鍵狀態:"+mouse_state+"\n";
text+="滑鼠座標:"+Math.floor(mouseX)+","+Math.floor(mouseY)+"\n";
text+="滑鼠滾輪:"+mouse_Delta;
label_content.text=text;
mouse_Delta=0;
}
// 建立標籤
private function makeLabel(text:String):TextField {
var label_content:TextField=new TextField();
label_content.text=text;
label_content.autoSize=TextFieldAutoSize.LEFT;
label_content.selectable=false;
return label_content;
}
}
}
// 2010_09_29
// 筆記1:若文字想在黃色矩形內,應該如何改
留言列表