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