FAQ / 21


FAQ / 21

キーボードで操作したい

カテゴリー:Action Script

質問

Flash上の操作で、ボタンをマウスで押す代わりに、キー入力で行うにはどうしたらいいですか?

回答

 操作したいスプライトのクリップアクションにスクリプトを書くわけですが、方法は三通りあります。

on(keyPress"★"){}

 この場合は""内の★に「キー識別子」を書き入れます。例えば、aキーで操作したいときは、on(keypress"a"){}とか、5キーならon(keypress"5"){}とか記入するわけです。

 しかし文字入力キーは小文字・大文字を区別してしまうためPCの入力設定を変更してもらわなければならず不便なため、主に「Enter」などの操作キーを使います。操作キーのキー識別子はon(keypress"<Enter>"){}のように<>で囲んで記入します。

 主に使うものだけ列挙しておきます。

  • ←は、<Left>
  • →は、<Right>
  • ↑は、<Up>
  • ↓は、<Down>
  • Enterは、<Enter>
  • Spaceは、<Space>
onClipEvent(keyDown){if(Key.getCode()==★){}}

 この場合は、★に「キーコード」を書き入れます。キーコードは半角数字です。

 アルファベッドaのキーコードは65、bは66、cは67…zは90。同様に0〜1は、48〜57

 また操作キーは、キーコードの代わりにKeyオブジェクトのプロパティでも構いません。

  • ←は、37またはKey.LEFT
  • →は、39またはKey.RIGHT
  • ↑は、38またはKey.UP
  • ↓は、40またはKey.DOWN
  • Enterは、13またはKey.ENTER
  • Spaceは、32またはKey.SPACE
onClipEvent(enterFrame){if(Key.isDown(★)==true){}}

 この場合も、★に「キーコード」または「Keyオブジェクトのプロパティ」を書き入れます。

 上記のふたつの方法は例えば_xを変化させる場合、PCでテキスト入力する際zキーを押し続けるとzzzzzzzzzz…と書き込まれるのと同じタイミングで変化しますが、この方法はキーを押し続けたことではなく、フレームが進むことで変化するので、動きが滑らかです。

 その他の「キー識別子」や「キーコード」を知りたい方は独学でお願いします。

 オンラインでキーコードを調べられるサイト http://himajin.moo.jp/javascript/keycode.html