第7回 キークラスとイベントリスナー(11月10日)

本日の課題

  • キーイベントを使ったムービーを作成する
  • サンプル:
  • 教材のダウンロード:081110_k.zip
  • サンプルソースのダウンロード:081110_f.zip

キークラス

  • キークラスを使うとキーイベントやキー押下の情報などを取得できる
  • キークラスはインスタンスを生成することなくメソッドやプロパティを使用できる
  • 例:左右のカーソルキーが押されていたらMCのX座標を移動する
    function onEnterFrame() {
      if (Key.isDown(Key.RIGHT)) {
        this._x += 10;
      }
      if (Key.isDown(Key.LEFT)) {
        this._x -= 10;
      }
    }
  • キーの区別はキーコードを使用する
  • 最後に押されたキーのキーコードはgetCode()で取得できる
  • キーイベントはFlashにフォーカスが当たっていないと取得できないのでユーザに一度クリックさせる工夫が必要

イベントリスナー

  • キーが押されたタイミングでアクションを起こすにはキーイベントを受け取る必要がある
  • クラスやムービークリップのインスタンスはキーが押下されたときのイベントを取得できない
  • イベントリスナーにインスタンスを登録することでキーイベントが受け取れるようになる
  • 例:キークラスのイベントリスナーに登録するとカスタムクラス内にキーイベントハンドラを設定できる
    Key.addListener(this);
    function onKeyDown() {
      if (Key.isDown(Key.ENTER)) {
      this.startBeam();
     }
    }
  • イベントリスナーから削除する場合はremoveListenerを使う
    Key.removeListener(this);

課題評価ポイント

  • クラス定義ファイルが正しく作成できているか?(20点)
  • キークラスのメソッドやプロパティが正しく使えているか?(20点)
  • イベントリスナーへの登録が正しくできているか?(20点)
  • キーイベントハンドラが正しく設定できているか?(20点)
  • 効果的なムービーが作成できているか?(20点)

ファイル名に全角文字や記号を使わないこと

Flashファイル(*.fla)とASファイル(*.as)を提出する

提出期限は授業日の週の水曜日の午後9時