« ザ・サーチ グーグルが世界を変えた。 | DEEP KICK.com Blog | The Rolling Stones Tokyo DOME »

2006年3月 7日

Flash Creative Technique - vol.47
サウンドがフェードアウトしながら切り替わるインターフェイス

このエントリーをはてなブックマークに追加

web creators 2006年4月号さてハヤシカオルが担当するようになって3回目となるFlashクリエイティブ・テクニックは、「サウンドがフェードアウトしながら切り替わるインターフェイス」をとりあげてみた。
できあがりのサンプルはこちらをクリック。
ボタンをクリック、もしくはキーボードの左右の矢印キーでコンテンツを切り替えることができるが、それにあわせてBGMがフェードアウトしながら次のサウンドとオーバーラップしながら切り替わっていくというもの。
サウンドオブジェクトの基本的な使い方を知っていれば、特に難しいことをしているわけではない。それぞれのBGMごとにサウンドオブジェクトを生成し、getVolume()メソッドを使ってボリュームを取得、ボリュームが0になるまでsetVolume()メソッドでボリュームを下げるループ処理をしている。それらの処理をカスタム関数sound_play(n)としてまとめ、コンテンツを切り替わるイベントを取得したときに実行している。
ムービークリップを指定するのに、eval()関数を使用しているので、その使い方を理解しておきたい。
例えば、

n = 1;
vvv = eval("_root.s_bgm" + n);
vvv.gotoAndPlay(2);

さてこのときの変数vvvの値は、お察しの通り
_root.s_bgm1
なので、
結果的にインスタンス_root.s_bgm1の2フレーム目にgotoAndPlay() することになる。
n = 2; のときは、インスタンス_root.s_bgm2
n = 3; のときは、インスタンス_root.s_bgm3
とまあ、こんな具合にそのときにならないとどれか分からない場合によく使われるのがeval()関数。簡単やね。

あとは、キーイベントの取得かな。フラグを立てて、キーイベントが連続して起きないようにしていることぐらいかな。

投稿者 kaoru : 2006年3月 7日 17:03

このエントリーをはてなブックマークに追加

contents
about
contact
Photo Gallery
blog
iPhone/iPad アプリ
Kindle book
portfolio