▼ActionScript 3.0メモ▼
キーイベントの処理


キーイベントを処理するFlashアプリを作成する。

ソースコード

KeyEx.as
package {
    import flash.display.*;
    import flash.text.*;
    import flash.events.*;
    import flash.ui.*;
    
    //キーイベントの処理 
   [SWF(width=240, height=240, backgroundColor=0xFFFFFF)]
    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();
            addChild(base);
            
            //フォーカスマークの非表示
            base.focusRect = false;			

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

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

        //キーダウンイベントの処理
        private function onKeyDown(evt:KeyboardEvent):void {
            var text:String = "";			
            text += "キーダウン\n";			
            text += "キーコード:" + evt.keyCode + "\n";			
            text += "コントロールキー:" + evt.ctrlKey + "\n";			
            if (evt.keyLocation==KeyLocation.STANDARD) {
                text += "キーの位置:標準キー\n";				
            } else if (evt.keyLocation==KeyLocation.STANDARD) {
                text += "キーの位置:テンキー\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";			
            if (evt.keyLocation == KeyLocation.STANDARD) {				
                text += "キーの位置:標準キー\n";				
            } else if (evt.keyLocation == KeyLocation.STANDARD) {				
                text += "キーの位置:テンキー\n";				
            } 
            text += "シフトキー:" + evt.shiftKey + "\n";			
            text += "アルトキー:" + evt.altKey + "\n";			
            label.text = text;			
        }

        //マウスクリックイベントの処理
        private function onMouseClick(evt:MouseEvent):void {
            //フォーカスの指定
            stage.focus = base;			
        }
    }
}



−戻る−