alright, let's go to see the addEventListener

滑鼠偵聽事件

當我們滑鼠移入到某個區域, 姑且稱這個區域為感應區(Hit)吧

會發生的事件大部份有 滑鼠一般(Up) 滑鼠滑入(Over) 滑鼠按下(Over) 滑鼠双擊 滑鼠滾輪等事件

以下為一範例程式碼:

 

2010_09_29_01.JPG 2010_09_29_02.JPG

 

 

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:若文字想在黃色矩形內,應該如何改

全站熱搜
創作者介紹
創作者 if 的頭像
if

如果... 就只是如果的話

if 發表在 痞客邦 留言(1) 人氣()