キーオブジェクトはキーボードからの入力を管理するオブジェクトです。
キーオブジェクトはムービーの再生時に自動的に生成される「トップレベルオブジェクト」の一つです。
| プロパティ | キー | キーコード |
|---|---|---|
| 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イベントハンドラ内で実行します。
ムービークリップオブジェクトを作って、ムービークリップアクションを記述します。
onClipEvent(keyDown) {
trace(Key.getCode());
}
getAscii()メソッドで最後に押されたキーのAsciiコードが得られます。
Key.getAscii()
通常、キーを押したときに発生するkeyDownイベントハンドラ内で実行します。
ムービークリップオブジェクトを作って、ムービークリップアクションを記述します。
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));
}
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;
}
}
同時押しから一方のキーを離すと判定がおかしくなることがあります。
Key.isToggled(キーコード)
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;
}
}
Programming Laboratory (Shio seminar)