| Name |
hiro_sam
|
| Date | 2002年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
|
|
Response 03
|
| 2002年06月11日 (火) 10時40分>
憲ちゃん
|
|
おお〜〜(^^g/~軽快なリズムに乗って、レーススナップが次々と展開していきますね♪ 臨場感があります!! これに音量調節ボタンを付けるとより親切なムービーになりますよ(*^-^*)
|
|