キーオブジェクト

キーオブジェクトはキーボードからの入力を管理するオブジェクトです。

キーオブジェクトの生成

キーオブジェクトはムービーの再生時に自動的に生成される「トップレベルオブジェクト」の一つです。

キーオブジェクトのプロパティ

プロパティ キー キーコード
BACKSPACE BackSpaceキー 8
TAB Tabキー 9
ENTER Enterキー 13
SHIFT Shiftキー 16
CONTROL Ctrlキー 17
CAPSLOCK CapsLockキー 20
ESCAPE Escキー 27
SPACE Spaceキー 32
PGUP PageUpキー 33
PGDN PageDownキー 34
END Endキー 35
HOME Homeキー 36
LEFT ←キー 37
UP ↑キー 38
RIGHT →キー 39
DOWN ↓キー 40
INSERT Insertキー 45
DELETEKEY Deleteキー 46

キーオブジェクトのメソッド

getAscii() 最後に押されたキーのAsciiコードを返す
getCode() 最後に押されたキーのキーコードを返す
isDown() 指定されたキーが押されているかを返す
isToggled() Lockできるキーの状態を返す

押されたキーのキーコードの取得

getCode()メソッドで最後に押されたキーのキーコードが得られます。

Key.getCode()

通常、キーを押したときに発生するkeyDownイベントハンドラ内で実行します。

例 getCode()によるキーコードの取得

ムービークリップオブジェクトを作って、ムービークリップアクションを記述します。

onClipEvent(keyDown) {
    trace(Key.getCode());
}

押されたキーのAsciiコードの取得

getAscii()メソッドで最後に押されたキーのAsciiコードが得られます。

Key.getAscii()

通常、キーを押したときに発生するkeyDownイベントハンドラ内で実行します。

例 getAscii()によるAsciiコードの取得

ムービークリップオブジェクトを作って、ムービークリップアクションを記述します。

onClipEvent(keyDown) {
    trace(Key.getAscii());
}

例 押されたキーを文字に変換

String.fromCharCode()と組み合わせて文字に変換します。

onClipEvent(keyDown) {
    var keyCode, keyAscii;
    keyCode=Key.getCode();
    keyAscii=Key.getAscii();
    trace(keyCode+": "+String.fromCharCode(keyCode)+" "+keyAscii+": "+String.fromCharCode(keyAscii));
}

キーが押されているかどうかの判断

isDown()メソッドを使って指定したキーコードのキーが押されているかどうかを判断します。
Key.isDown(キーコード)

例 キーが押されているかどうかの判断

onClipEvent(load) {
    var speed=5;
}
onClipEvent(keyDown) {
    if (Key.isDown(Key.SHIFT) ) {
        speed=10;
    } else {
        speed=5;
    }
    if ( Key.isDown(Key.LEFT) ) {
        this._x-=speed;
    }
    if ( Key.isDown(Key.RIGHT) ) {
        this._x+=speed;
    }
    if ( Key.isDown(Key.DOWN) ) {
        this._y+=speed;
    }
    if ( Key.isDown(Key.UP) ) {
        this._y-=speed;
    }
}

同時押しから一方のキーを離すと判定がおかしくなることがあります。

Lockできるキーの状態を返す

isToggled()メソッドでロックできるキー(CapsLockキーとNumberLockキー)の状態を取得できます。
Key.isToggled(キーコード)

例 Lockできるキーの状態を返す

onClipEvent(keyDown) {
    if ( key.isToggled(144) ) { // NumberLockキーのキーコードは114
        speed=20;
    } else {
        speed=10;
    }
    if ( Key.isDown(Key.LEFT) ) {
        this._x-=speed;
    } else if ( Key.isDown(Key.RIGHT) ) {
        this._x+=speed;
    } else if ( Key.isDown(Key.DOWN) ) {
        this._y+=speed;
    } else if ( Key.isDown(Key.UP) ) {
        this._y-=speed;
    }
}