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;
}
}
} |