キーボードで制御

ボタンをマウスで押す代わりにキー操作で行う

macmove

on(keiPress"<キー>"){
//キーコードが押されたときの処理
}

onClipEvent (load) {
	var keyMove:Number=5;
}
on(keyPress "<Left>"){
	this._x-=keyMove;
}
on(keyPress "<Right>"){
	this._x+=keyMove;
}
on(keyPress "<Up>"){
	this._y-=keyMove;
}
on(keyPress "<Down>"){
		this._y+=keyMove;
}

キーボードから反応を得るには

  1. フレームが実行されるイベントの中でキーが押されているか判定する
  2. キーが押されるごとにイベントが呼ばれるように登録する

if(key.isDown(キーコード)){
//キーコードが押されたときの処理
}

onClipEvent (load) {
	var keyMove:Number=5;
}

onClipEvent (enterFrame) {
	if(Key.isDown(Key.LEFT)){
		this._x-=keyMove;
		}
	if(Key.isDown(Key.RIGHT)){
		this._x+=keyMove;
		}
	if(Key.isDown(Key.UP)){
		this._y-=keyMove;
		}
	if(Key.isDown(Key.DOWN)){
		this._y+=keyMove;
		}
}
キーが押されているかをずっと調べる
onClipEvent (load) {
	var keyMove:Number=5;
}

onClipEvent (enterFrame) {
	if(Key.isDown(Key.LEFT)==true){
		this._x-=keyMove;
		}
	if(Key.isDown(Key.RIGHT)==true){
		this._x+=keyMove;
		}
	if(Key.isDown(Key.UP)==true){
		this._y-=keyMove;
		}
	if(Key.isDown(Key.DOWN)==true){
		this._y+=keyMove;
		}
}
key.getCode()でキーが押されているかを調べる

onClipEvent(keyDown){
//何かキーが押されて
if(Key.getCode()==Key.LEFT){
//それが「←」キーだったら実行する
}

onClipEvent (load) {
	var keyMove:Number=5;
}

onClipEvent (keyDown) {
	if(Key.getCode()==Key.LEFT){
		this._x-=keyMove;
		}
	if(Key.getCode()==Key.RIGHT){
		this._x+=keyMove;
		}
	ifKey.getCode()==Key.UP{
		this._y-=keyMove;
		}
	if(Key.getCpde()==Key.DOWN){
		this._y+=keyMove;
		}
}

keyDownをenterFrameにすると、キーをおしたとき動き続ける。
だから、keyDown。(押した時・押すたびに)

switch文に書き換え
onClipEvent (load) {
	var keyMove:Number=5;
}

onClipEvent (keyDown) {
	switch(Key.getCode()){
		case Key.LEFT:
			this._x-=keyMove;
			break;
		case Key.RIGHT:
			this._x+=keyMove;
			break;
		case Key.UP:
			this._y-=keyMove;
			break;
		case Key.DOWN:
			this._y+=keyMove;
			break;
		}
}

匿名関数(イベントハンドラ)でも記述はできるが、ムービークリップにフォーカスがあるときしか入力を受け付けない。

イベントリスナーにイベントオブジェクトを登録
  • イベントを受け取る
var keyMove=5;

myKey=new Object();//新しいリスナーオブジェクトを作成
myKey.onKeyDown=function(){//関数を登録
		switch(Key.getCode()){
		case Key.LEFT:
			mac_mc._x-=keyMove;
			break;
		case Key.RIGHT:
			mac_mc._x+=keyMove;
			break;
		case Key.UP:
			mac_mc._y-=keyMove;
			break;
		case Key.DOWN:
			mac_mc._y+=keyMove;
			break;
		}
	};
Key.addListener(myKey);
//リスナーを Key オブジェクトに登録
//イベント通知を受け取る

イベントリスナー Key.addListner


何のためにキー入力を調べるのか
それぞれ適した方法が用意されている。。。