package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.ui.*; //↑↓←→で表示されたビットマップを移動させる public class BitmapMove extends Sprite { //リソース [Embed(source='bbb.gif')] private var Image0:Class; private var image0:Bitmap; //変数 public static const KEY_LEFT:int =37; public static const KEY_UP:int =38; public static const KEY_RIGHT :int =39; public static const KEY_DOWN:int =40; private var g:JGraphics; private var label:TextField;//ラベル private var posX:int;//X座標 private var posY:int;//Y座標 //コンストラクタ public function BitmapMove() { //リソース image0 =new Image0(); //グラフィックス g=new JGraphics(320,320); addChild(new Bitmap(g.getBitmapData())); //背景の描画 g.setColor(g.getColorOfName(JGraphics.WHITE)); g.fillRect(0,0,320,320); //初期座標設定 posX = 0; posY = 0; //イメージの描画 g.setColor(g.getColorOfName(JGraphics.BLUE)); g.fillRect(0,0,320,320); g.drawImage(image0,posX*32,posX*32); //ラベルの追加 label=makeLabel("キーイベント"); addChild(label); //イベントリスナーの追加 addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler); addEventListener(KeyboardEvent.KEY_UP,keyUpHandler); addEventListener(MouseEvent.CLICK,clickHandler); } //キーダウンイベントの処理 private function keyDownHandler(evt:KeyboardEvent):void { if (evt.keyCode == KEY_LEFT) { if (posX > 0) { posX -= 1; } } else if (evt.keyCode == KEY_UP) { if (posY > 0) { posY -= 1; } } else if (evt.keyCode == KEY_RIGHT) { if (posX < 9) { posX += 1; } } else if (evt.keyCode == KEY_DOWN) { if (posY < 9) { posY += 1; } } g.setColor(g.getColorOfName(JGraphics.BLUE)); g.fillRect(0,0,320,320); label.text = "keyCode:" + evt.keyCode; g.drawImage(image0,posX*32,posY*32); } //キーアップイベントの処理 private function keyUpHandler(evt:KeyboardEvent):void { } //マウスクリックイベントの処理 private function clickHandler(evt:MouseEvent):void { //フォーカス stage.focus; } //ラベルの生成 private function makeLabel(text:String):TextField { var label:TextField=new TextField(); label.text =text; label.autoSize =TextFieldAutoSize.LEFT; label.selectable=false; return label; } } }