ひっと

マウスカーソルを非表示にする ActionScript(AS3)

~ Flashアプリ、ゲームのためのAS3サンプルプログラム集 ~

マウスカーソルを非表示にする Mouse.hide()


Flashの画面上でオリジナルのマウスカーソルを使う時のサンプルです。
矢印カーソルを非表示にして、赤丸を替わりに表示します。

AS3 サンプル ソースコード

Mouse.hide()でカーソルを非表示にして、替わりのカーソルをスプライトで描画します。
しかし、それだけだと画面外に出た時にカーソルが残ってしまうので
stageのMOUSE_OVERとMOUSE_OUTのイベントで表示を切り替えます。

package
{
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.MouseEvent;
    import flash.ui.Mouse;

    [SWF(width="400", height="300")]
    public class Main extends Sprite
    {
        public var back:Sprite;//マウス検知用背景
        public var csr:Sprite;//替わりのカーソル

        public function Main()
        {
            //マウス検知用背景(透明な背景)
            back = new Sprite();
            back.graphics.beginFill(0xFFFFFF, 0);
            back.graphics.drawRect(0,0,400,300);
            this.addChild(back);

            //替わりのカーソル
            csr = new Sprite();
            csr.graphics.beginFill(0xFF0000);
            csr.graphics.drawCircle( 0,0, 5 );
            csr.graphics.endFill();
            csr.visible = false;
            csr.mouseEnabled = false;

            this.addChild(csr);

            this.stage.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver );
            this.stage.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut );
            this.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove );

        }
        public function onMouseOver(e:MouseEvent):void
        {
            Mouse.hide();
            csr.visible = true;
        }
        public function onMouseOut(e:MouseEvent):void
        {
            Mouse.show();
            csr.visible = false;
        }

        public function onMouseMove(e:MouseEvent):void
        {
            csr.x = e.stageX;
            csr.y = e.stageY;
        }

    }
}
目次へ
57801