STEP03:キー入力で画像を移動させる
forked from STEP02:画像を移動させる (diff: 69)
画像を扱う イベントリスナー キーボード
ActionScript3 source code
/**
* Copyright tepe ( http://wonderfl.net/user/tepe )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/ocvM
*/
// forked from tepe's STEP02:画像を移動させる
// forked from tepe's STEP01:画像を表示する
package {
import flash.display.Sprite;//画像を扱う
import flash.events.*;//イベントリスナー
import flash.ui.*;//キーボード
public class FlashTest extends Sprite {
private var X:Number = 200;//x軸
private var Y:Number = 200;//y軸
private var R:Number = 10;//半径
private var Mov:Number = 2;//移動量
//キー入力フラグ
private var keyUp:Boolean;
private var keyDown:Boolean;
private var keyLeft:Boolean;
private var keyRight:Boolean;
private var S:Sprite = new Sprite();//画像オブジェクト
//最初に実行される
public function FlashTest() {
//画像オブジェクトを追加する
stage.addChild(S);
//画面が更新されるごとに実行されるイベント
stage.addEventListener(Event.ENTER_FRAME,onFrame);
stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey);
stage.addEventListener(KeyboardEvent.KEY_UP,offKey);
}
//画面更新で実行
private function onFrame(e:Event):void{
//キー入力があれば移動
if(keyUp==true)Y-= Mov;
if(keyDown==true)Y+= Mov;
if(keyLeft==true)X-= Mov;
if(keyRight==true)X+= Mov;
//図形描画
S.graphics.clear();//描画データを消す
S.graphics.beginFill(0x000000);
S.graphics.drawCircle(X,Y,R);
S.graphics.endFill();
//ループ構造のフィールド
if(500 < X)X = -20;
else if(X < -20)X = 500;
if(500 < Y)Y = -20;
else if(Y < -20)Y = 500;
}//onFrame
//キーボードが押されたら実行
private function onKey(e:KeyboardEvent):void{
switch(e.keyCode){
case Keyboard.UP:
keyUp = true;
break;
case Keyboard.DOWN:
keyDown = true;
break;
case Keyboard.LEFT:
keyLeft = true;
break;
case Keyboard.RIGHT:
keyRight = true;
break;
}
}//onKey
//キーボードが離されたら実行
private function offKey(e:KeyboardEvent):void{
switch(e.keyCode){
case Keyboard.UP:
keyUp = false;
break;
case Keyboard.DOWN:
keyDown = false;
break;
case Keyboard.LEFT:
keyLeft = false;
break;
case Keyboard.RIGHT:
keyRight = false;
break;
}
}//offKey
}//class FlashTest
}