▼Adobe AIRメモ▼
キーイベントの処理


キーイベントの処理を行うプログラムを作成する。


ソースコード
KeyEx.as
package {
    import flash.display.*;
    import flash.events.*;
    import flash.text.*;
    import flash.ui.*;
    
    //キーイベントの処理 
    public class KeyEx extends Sprite {
        private var base:Sprite;    //キー入力対象となるスプライト
        private var label:TextField;//ラベル

        //コンストラクタ
        public function KeyEx() {
            //キー入力対象となるスプライト
            base=new Sprite();
            base.graphics.beginFill(0xFFFFFF);
            base.graphics.drawRect(0,0,240,240);
            base.graphics.endFill();
            base.focusRect=false;
            addChild(base);

            //ラベルの追加
            label=makeLabel("キーイベント");
            base.addChild(label);
            
            //イベントリスナーの追加
            base.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
            base.addEventListener(KeyboardEvent.KEY_UP,onKeyUp);
            base.addEventListener(MouseEvent.CLICK,onClick);  
        }

        //キーダウンイベントの処理
        private function onKeyDown(evt:KeyboardEvent):void {
            var text:String="";
            text+="キーダウン\n";
            text+="キーコード:"      +evt.keyCode+"\n";
            text+="コントロールキー:"+evt.ctrlKey+"\n";
            text+="シフトキー:"      +evt.shiftKey+"\n";
            text+="アルトキー:"      +evt.altKey+"\n";
            label.text=text;
        }

        //キーアップイベントの処理
        private function onKeyUp(evt:KeyboardEvent):void {
            var text:String="";
            text+="キーアップ\n";
            text+="キーコード:"      +evt.keyCode+"\n";
            text+="コントロールキー:"+evt.ctrlKey+"\n";
            text+="シフトキー:"      +evt.shiftKey+"\n";
            text+="アルトキー:"      +evt.altKey+"\n";
            label.text=text;
        }

        //マウスクリックイベントの処理
        private function onClick(evt:MouseEvent):void {
            //キー入力対象となるスプライトにフォーカス
            stage.focus=base;
        }

        //ラベルの生成
        private function makeLabel(text:String):TextField {
            var label:TextField=new TextField();
            label.text=text;
            label.autoSize=TextFieldAutoSize.LEFT;
            label.selectable=false;
            return label;
        }
    }
}


−戻る−