ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

マウスイベントの取得

マウスの動きを取得する場合はマウスイベントをイベントリスナーで登録すれば良い。
たとえばステージ(フラッシュが実行されているウィンドウ全体)のどこかをクリックしたことを知りたいときは次のようにする。

package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;

    public class Test extends Sprite {
        public function Test() {
            // マウスでクリックされたときのイベントを登録
            stage.addEventListener(MouseEvent.CLICK, onClick);
        }
        
        private function onClick(e:MouseEvent):void {
            // マウスでクリックされたときの処理
        }
    } 
}

引数で渡されるイベント変数にはクリックされた位置やctrlキーなどが押されていたかなどの情報が収納されている。クリック位置は

localX // スプライト上のX座標
localY // スプライト上のY座標
stageX // ステージ上のX座標
stageY // ステージ上のY座標

のプロパティで取得できる。
登録できるマウスイベントとしては次のようなものがある。

CLICK        クリック
DOUBLE_CLICK ダブルクリック
MOUSE_DOWN   ボタンが押されている 
MOUSE_UP     ボタンが離された
MOUSE_MOVE   マウスが動いた
MOUSE_WHEEL  マウスのホイールが動いた
MOUSE_OVER   マウスカーソルがオブジェクト上に来た
MOUSE_OUT    マウスカーソルがオブジェクト上から離れた
ROLL_OVER    ロールオーバー
ROLL_OUT     ロールアウト

ロールオーバーとロールアウトはオブジェクトの親子構造を考慮したマウスオーバーとマウスアウトのようなもの。分かりやすい解説がこのページにあった。ActionScript 3.0 ロールオーバーとマウスオーバーの違い
他にも右クリックされたときのイベントもあるが通常のFlashでは利用出来ずAIRのときのみ利用可能。
http://livedocs.adobe.com/flex/3_jp/langref/flash/events/MouseEvent.html