トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

音を出す_Flash

SEを出す

Flashにてゲームの効果音のような「音」を制御します。

メニューの[ファイル(F)]-[読み込み(I)]-[ライブラリに読み込み]にて、mp3/wav/aif形式のサウンドファイル(効果音など)を読み込みます。すると、ライブラリに音情報が登録されます。

ライブラリウィンドウより対象となるサウンドを右クリックし、ポップアップメニューより「リンケージ」を選択します。

リンケージプロパティウィンドウにて、「ActionScriptに書き出し」をチェックし、識別子をつけます。以下は「se_sound1」としています。

後は、ActionScriptでの処理となります。

//サウンド用オブジェクトの生成
m_se01 = new Sound();

//サウンドの割り当て
m_se01.attachSound("se_sound1");

//ボリュームの指定(1-100)
m_se01.setVolume(100);

//サウンドの左右バランスの指定(-100:左 〜 0:中央 〜 100:右)
m_se01.setPan(0);

//サウンドを鳴らす
m_se01.start(0, 1);

//停止
m_se01.stop();

//オブジェクトの削除
delete m_se01;

上記は流れを説明しています。が、上記のとおりに1フレーム内でのActionScriptとして記述した場合は「音が鳴らない」ことに注意してください。1フレームの処理で「音を鳴らす→音を止める」の流れを記述したところで最終的には、「鳴らさない」と判断されて音は出ません。音を鳴らしっぱなし(ただし1ループ分のみ)にして、そのままにするかストップのイベントのタイミングで「stop()」を呼ぶとよいでしょう。

では、順に説明をしていきます。

「m_se01 = new Sound();」にて、サウンド用のオブジェクトを生成し「m_se01.attachSound("se_sound1");」でライブラリウィンドウの「リンケージプロパティ」ウィンドウ内で指定した識別子を第一引数として渡します。これで、オブジェクトにサウンドが割り当てられます。

「m_se01.setVolume(100);」にて音量(ボリューム)を指定します。1〜100の整数値を指定することができます。1が最小で100で最大です。遠くの足音がだんだん近づいて大きくなってくる、なんて表現には1から順番に100に近づける、とするといいでしょう。

「m_se01.setPan(0);」は、ステレオで音を出す際の左右のバランスです。-100で左から、0で中央から、100で右から、となります。空間的に音を配置する場合に使用できます。

「m_se01.start(0, 1);」で音を出します。第一引数(ここでは0としています)は音の開始位置(秒)、第二引数は繰り返しの回数(ここでは1としています)を指定します。

音が鳴っている(start)状態で「m_se01.stop();」とすることで音を停止します。

「delete m_se01;」はnewしたオブジェクトを削除しています。完全にメモリから使用したデータを破棄しています。

Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.