- keyクラスとは
- キーの調べ方
- 最後に押されたキーを調べる
- いままさに押されているキーを調べる
- キーを識別する数値
- 入力した文字を調べ画面表示する
- 文字をアニメーションするシンボルを作る
- キー入力を感知
keyクラスとは
- Flashでキーを押されたことを知るクラス
- MovieClip.onKeyDownイベントでも認知できるが、そのムービークリップにフォーカスがある時しかうまくいかないので使い道が限られる
- フォーカスに関係なくキーを認知
キーの調べ方
最後に押されたキーを調べる
- Key.getCode()
- Key.getAscii()
- キーを押しっぱなしにするゲームには不向き
いままさに押されているキーを調べる
- Key.isDown()
- MovieClip.onEnterFrameイベント(フレームレートで設定された時間が経った)に割り当てた関数のなかでよく使われる
キーを識別する数値
キーコード
- Key.isDownの引数として渡す、あるいはKey.getCode
で返される数値
- Enterキーやスペースバーなどの特殊なキーにはKeyクラスの定数も使える
if( Key.isDown(13) );
if( Key.isDown( Key.ENTER ) );
- Key.getAsciiで返される値
- 押された文字を表す…大文字と小文字を区別
- Aのアスキー値は65、aのアスキー値は97
- String.fromCharCode()でアスキー値を文字に変換できる
var keyStr:String = String.fromCharCode( 97 );
入力した文字を調べ画面表示する
- A~Zのキーを押すとその文字が回転しながら登場、大きくなりながら消える
文字をアニメーションするシンボルを作る
- シンボルをダイナミックテキストで制作
- ASリンゲージを[symLetter]で登録
- スクリプトを記述
var letterText:TextField;
var letter: String;
/* 文字を表示 */
letterText.text = letter;
this.onEnterFrame = animateChar;
/* 文字をアニメーション */
function animateChar():Void
{
this._xscale *= 1.5;
this._yscale *= 1.5;
this._rotation += 40;
this._alpha -= 5;
/* 透明になったら */
if(this._alpha == 0)
this.removeMovieClip();
}
キー入力を感知
var keyListener:Object = new Object();
keyListener.onKeyDown = keyCheck;
Key.addListener( keyListener );
function keyCheck():Void
{
var keyCode:Number = Key.getCode();
var keyStr:String = String.fromCharCode( keyCode );
if( keyStr >= "A" && keyStr <= "Z" )
attachLetter( keyStr );
}
function attachLetter( letter:String ):Void
{
var depth:Number = this.getNextHighestDepth();
var letterMovie = this.attachMovie( "symLetter", "key" + depth, depth );
letterMovie.letter = letter;
letterMovie._x = 150;
letterMovie._y = 80;
}