第11回 インベーダーゲームを作る2[サウンドの使用1](6月30日)

本日の課題

  • Flashのゲームにサウンドを組み込む
  • タイムラインを使ったサウンドの制御とActionScriptを使ったサウンドの制御の違いを理解する
  • サンプル:
  • 教材のダウンロード:080630.zip
  • サンプルソースのダウンロード:080630.fla

サウンドファイルの読み込み

  • 読み込めるサウンドファイルはMP3, AIFF形式(WindowsではWAV形式)
  • MP3を読み込んだ場合はMP3の圧縮設定がそのまま適用される
  • サウンドはステージに直接配置はできないのでライブラリに読み込んで使う
  • 1MBを越えるようなサウンドファイルはflaファイルに読み込まずにActionScriptでストリーミング再生させる

タイムラインでのサウンドの制御

  • 読み込んだサウンドはキーフレームのプロパティで設定する
  • サウンドはどのレイヤーにも設定可能だが、BGMなどはサウンド用のレイヤーを用意した方がよい
  • 設定できるのは「音の鳴るタイミング」
    • BGMなど重複して再生されては困る場合は同期を「スタート」
    • SEなどは「イベント」に設定する
    • 「ストリーミング」はサウンドとアニメーションのタイミングを合わせたい場合に使う
  • サウンドを止めるには同期を「ストップ」に設定する

ActionScriptでのサウンドの制御

  • インスタンスの制御をActionScriptで行っているとタイムラインではサウンドを指定できない場合がある
  • ActionScriptでサウンドを制御するにはライブラリに読み込んだサウンドにリンケージ設定を行う
  • サウンドオブジェクトを生成してサウンドをアタッチしておく
  • 例:
    // サウンドオブジェクトを生成
    this.crashSnd = new Sound();
    // サウンドをアタッチ(識別子を指定)
    this.crashSnd.attachSound("crash");
  • サウンドオブジェクトはインスタンスで共有できるようにルートのタイムラインに設定する
  • インスタンスからサウンドオブジェクトを呼び出すことでActionScriptでサウンドを制御できる
  • 例:
    // サウンドを再生
    this._parent.crashSnd.start();

課題評価ポイント

  • サウンドファイルの読み込みが正しくできているか?(20点)
  • タイムラインでのサウンド設定が正しくできているか?(20点)
  • リンケージ設定とサウンドオブジェクトの生成が正しくできているか?(20点)
  • ActionScriptでのサウンド制御が正しくできているか?(20点)
  • サウンドが効果的に使えているか?(20点)

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

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