B04_003 音量調節スライドバーについて
Name hiro_sam
Date2002年06月06日 (木) 22時26分
Message 初めて書きこみさせていただきます。
このHPを大変重要な教材として使わせてもらっています。

質問の内容は音量調節についてです。
スライドバーに音量調整機能をつけるタイプにしたいのです。
私が今やりたいと思っているのは、試聴機のようなもので、
試聴機にはいくつかのボタンがあり、そのボタンを押せば外部swfファイルを指定したムービークリップに読みこんで再生するというふうにしています。聞きたい曲だけを読みこんで再生というふうにしています。
読みこむ外部swfファイルは、ただフレームに曲を貼りつけストリーミングにしたものです。曲は友達が作曲したものです。
ここまではもうできているのですが、私はこれに音量調節をつけたいのです。スライドをドラッグして左にドラッグすれば音は小さく、逆へドラッグすれば音が大きくなるという風にです。
よろしければご教授お願い致します。
Response 01
2002年06月07日 (金) 20時17分> 憲ちゃん   
hiro_samさん、はじめまして(^^g/~~
重たいサウンドファイルを別途swfにして、それをボタンでloadMovieするのは正解です!
1曲1曲をムービークリップにしたりするととんでもないことになりますからね(笑)
それで、FLASHには「soundオブジェクト」の中に「setVolume(数値);」メソッドがありますので、
それを使うと音量調節が可能です。

基本的な使い方は・・・
@アクションでサウンドをコントロールしようとするときは、まず「soundオブジェクト」を生成します。
※「オブジェクト生成」の意味が理解できなくても、
※サウンドを使うときの「呪文のひとつ」、「枕詞」とでも考えてください(笑)
方法は、任意の変数に「new sound();」を代入するだけ!
任意の変数を仮に「soundV」とします。
  soundV = new sound();
これで、soundV の中に「soundオブジェクト」が生成されました。
A音量調節メソッド「setVolume(数値);」は、生成した変数のあとに「.(ドット)」で繋いで
()内の数値を指定します。
  soundV.setVolume(数値);
数値には0〜100までの値が入り、
  soundV.setVolume(0);  ←「0が最小音量(無音)」
  soundV.setVolume(100); ←「100が最大音量」です。

あとはこれをスライドバーを使って、値を変化できるように仕組めばよいということですね(^^g/~~
実際の作り方には、いろいろなやり方がありますが、ここでは「setVolume(数値);」の機能が
簡単に理解できるよう、単純な方法で解説します。
そして、他のムービーで「ライブラリ」から転用できるように、
この仕組みをムービークリップでつくることとします。

<サンプル>


@まず、スライドのガイドになる横線をステージに描きます。(サンプルでは w=200)
Aそれを選択して、「挿入」→「シンボルに変換」をクリック。
シンボルプロパティで「名前」を仮に”音量調節”、「タイプ」を”ムービークリップ”にして「OK」。
※これで、まだガイドの横線だけですが「音量調節」ムービークリップのできあがり。
Bそれを再度ステージで選択して右クリック。ショートカットメニューの「同じ位置で編集」をクリック。
「音量調節」編集画面で、横線の入ったレイヤーに「ガイド」と名前を付け、
さらにレイヤーを2つ追加して、
すぐ上のレイヤーを「つまみ」、その上を「アクション」とでもして名前を付けてください。
C「ガイド」レイヤーをロックして、「つまみ」レイヤーに”つまみ”図形を描き、
「整列パネル」等でそれを編集画面の中央に配置します。
Dこの”つまみ”は左右にドラッグして動くようにするためのものですから、
これを「ボタン」の入った「ムービークリップ」にします。
”つまみ”図形を選択して、
「挿入」→「シンボルに変換」で「名前」を”つまみB”、「タイプ」を”ボタン”として「OK」。
さらにその「つまみB」ボタンを選択して、
「挿入」→「シンボルに変換」で「名前」を”つまみM”、「タイプ」を”ムービークリップ”で「OK」。
E「つまみM」ムービークリップを選択した状態で右クリック、
ショートカットメニューの「同じ位置で編集」をクリックすると、
中に「つまみB」ボタンが入っているのが確認できます。
その状態で「つまみB」ボタンに、ドラッグ用の「ボタンアクション」を設定します。
 on (press) {
   startDrag ("", false, -100, 0, 100, 0);
 }
 on (release) {
   stopDrag ();
 }
※青字の数値は、「つまみB」がムービークリップの中で移動(Drag)可能な範囲を指定してます。
 ムービークリップの中心を「0,0」として、
 左から順にそれぞれ「左座標(X)」「上座標(Y)」「右座標(X)」「下座標(Y)」です。
 ここでは上下(Y)は動かないので共に「Y=0」、ガイドの長さが「200」でその中心からみると、
 左端は「X=-100」、右端は「X=100」となることは理解できますね(^^g/~~
※アクションの記入方法等、詳しくは・・・
◎2002年02月25日 (月)、ゆきさんの「スクロールテキストフィールド」の記事参照してください。
これで、スライドバーがドラッグして左右に動くように設定できました。
Fつぎは、この「つまみM」のX座標位置を取得して、それと音量が連動するアクションを
「音量調整」ムービークリップに設定します。
「つまみM(正確にはここではインスタンス)」の座標位置を取得するには、
アクションでそれを特定できるよう”インスタンスに固有の名前”を付ける必要があります。
「音量調節」ムービークリップ編集画面に戻って、
「つまみM」ムービークリップ(インスタンス)を選択して、「インスタンスパネル」で
「名前」を仮に「tumami」としてください。
G次にフレーム数を3フレームまで増やしてください。
「アクション」レイヤーの1フレームに次のアクションを設定します。
 soundV = new Sound();
※上でご説明した、「soundオブジェクト」を「soundV」に生成です。
H「アクション」レイヤーの2フレームに次のアクションを設定します。
 vol = tumami._x/2 + 50;
 soundV.setVolume(vol);
※音量調節メソッド「soundV.setVolume(数値);」の数値のところには、仮に「vol」という変数にし、
「つまみ(インスタンス名:tumami)のX座標」は、「tumami._x」で得られますので、
(「_x」が「X座標の取得」の意味で、その前に「インスタンス名」を「.(ドット)」で繋ぐだけ)
X=-100のとき Vol=0、X=0のとき Vol=50、X=100のとき Vol=100 となるよう計算式を設定すると、
その上の部分のような式になります(*^-^*)
これは、実際にhiro_samさんが作られたコンテンツによって適宜変更してください。
I「アクション」レイヤーの3フレームは、
 gotoAndPlay (2);
として、2〜3フレームのループにして、常に「つまみの座標と音量の値」が変化するようにします。

※「オブジェクト」の「Sound」からメソッド等をスクリプトエリアに記載しても構いませんが、
「アクション」の「evaluate」をダブルクリックして、下の「式」欄にキーボードから
スクリプトを記載する方が簡単な場合があります。

以上で、音量調節スライドバーの完成!!

サンプルでは、これを数値でも見れるように、ダイナミックテキストを配置。
ダイナミックテキストの変数名を同じ「vol」にしています。
計算結果の小数点以下が気に入らないので(笑)・・・それを切捨て「math.floor()」で括っています。
 vol = math.floor (tumami._x/2 + 50);

あとは、元のシーン上で、目的のサウンドファイルを「loadMovie」でレベル1に読み込むボタンを
設置すれば出来上がりですね(*^-^*)
逆に、既にサウンドファイルを読み込むムービーが出来上がっているなら、
そこに、ここのサンプルの「音量調整」ムービークリップを「ライブラリ」からドラッグして
貼り付けるだけでも構いません(^^g/~~

<サンプルのflaファイル>
v_control0.fla よろしければ右クリックして持って帰ってくださいね(笑)
Response 02
2002年06月09日 (日) 13時36分> 弘味   
hiro_samさん、はじめまして。
丁度、BGMをコントロールしたくて、悩んでました。
音量調節、参考にさせて頂きます。

> 憲ちゃん
競艇選手のレース写真のムービーです。ボタンでBGMありとなしへコントロールしようかと思ってたけど、ボリューム調節ボタン参考にしてみますm(._.*)mペコッ!

2002 Race 3713 Seiji Ito
今のところ、最初からいきなりBGMが流れます(;^_^A アセアセ・・・
http://www.katch.ne.jp/~kaz-hir/index.htm
Response 03
2002年06月11日 (火) 10時40分> 憲ちゃん   
おお〜〜(^^g/~軽快なリズムに乗って、レーススナップが次々と展開していきますね♪
臨場感があります!!
これに音量調節ボタンを付けるとより親切なムービーになりますよ(*^-^*)

このページの先頭へ