• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:setVolumeで設定するとフレームの音量が下がる)

setVolumeで設定するとフレームの音量が下がる

このQ&Aのポイント
  • setVolume関数を使用すると、フレームの音量が下がる現象が発生します。
  • 具体的には、ObaとOtoという変数を使用して音量を設定する場合、setVolume関数によってObaの音量が0になり、Otoで設定した音量になってしまいます。
  • この問題を解決するためには、バラバラに音量を設定するための方法を見つける必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

すごく原始的だと思われるかもしれませんが, 複数の音に対して違う操作をする場合,音の数だけムービークリップが必要です。  Flash ≒ ムービークリップ この路線は ActionScript においても妙なところで多々引き継がれています。 結局,ムービークリップ内のライムラインに音を配置して, そのムービークリップの音を操作するイメージに近い物です。 (昔からある タイムライン配置の音の手動操作 を,あえて ActionScript で操作する感じ。) > Oba=new Sound(); ここが問題です。 これで,Oba というサウンドオブジェクトが作成されますが, この Oba はムービー全体を支配するオブジェクトになります。 空のムービークリップを createEmptyMovieClip で作成するか, もしくは手動で作成するかして, とりあえずムービークリップを作成して, そのムービークリップに対してのサウンドオブジェクトを作成しなければなりません。 たとえば, 「sound_mc1」 というインスタンス名のムービークリップを _root 作成したならば, Oba=new Sound(sound_mc1); のように書いて, 「sound_mc1」 に対してのサウンドオブジェクトを作成する必要があります。 Flashゲーム講座&ASサンプル集【サウンドの制御について】  >ライブラリにあるサウンドを動的に再生したい http://hakuhin.hp.infoseek.co.jp/main/as/sound.html#SOUND_03

cool12
質問者

お礼

出来ましたぁぁ!!! ありがとうございます(TT) 聞いたら自分で調べろと言われるのではと思って 怖くて、どこにも誰にも聞くことが出来ず 困っていました。 本当にありがとうございました!! Flashで音を今まで使ったことがなかったので これから、これを応用して色々出来そうで楽しみです^^ 本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 音声の出だしの音量だけがsetVolumeで制御が利かない。

    SoundオブジェクトのattachSoundを利用して、フレームに音声を割り当て、再生しているのですが、 最初の出だし部分の音だけが、setVolumeで設定した音量を無視して、ライブラリに取り込んだままの音声で再生されてしまいます。 その後は、setVolumeで設定した音量にすぐにもどります。 自分的には、インスタンス化したSoundがsetVolumeで制御されるよりも先に再生されてしまう為、出だし部分だけ音量制御が利かないのでは? と思うのですが、良い解決方法がみつからず、悩んでおります。 コードは下記のようにしてます。 bgSound = new Sound(this); bgSound.attachSound("sound1"); bgSound.start(0, 1); slider.slideBar._y = -30; slider.slideBar.onEnterFrame = function() {     bgSound.setVolume(0-this._y); } slider.slideBar.onEnterFrame = function() { bgSound.setVolume(0-this._y); _global.vol = this._y }; slider.slideBar.onPress = function() { startDrag(this, false, this._x, -60, this._x, -0); }; slider.slideBar.onRelease = slider.slideBar.onReleaseOutside=function () { stopDrag(); }; 宜しくお願いします。

    • ベストアンサー
    • Flash
  • 【音声個別に再生】

    まず音声の素材にリンケージで ActionScript書き出しのみにチェック入れて 識別子を”bgm01”と”bgm01”の二つを用意します。 それを別々に再生させて それぞれの「音量」をコントロールできる スクリプトを書きたいのですが どうしても「音量」だけ 2つの素材すべてに影響して 両方とも音量が下がります。 どうすれば回避できるか教えてください。 【再生ボタン】 on (release) { mySound.stop("bgm01"); mySound = new Sound(sound_mc); mySound.attachSound("bgm01"); mySound.start(0, 999); // 音量設定( 0% ~ 100% ) mySound.setVolume(100); vol = mySound.getVolume(); } 【停止ボタン】 on (release) { mySound.stop("bgm01"); } 【音量ボタン】 on (press) { // 音量設定( 0% ~ 100% ) mySound.setVolume(50); vol = mySound.getVolume(); } これをmySoundに添え字で番号を振って bgm02も同じように作ります。 以上で、私が書いてるスクリプトです。

    • ベストアンサー
    • Flash
  • ボリュームスライダー(音量)を維持したい

    下記Scriptでボリュームスライダーをコントロールし、音量調整 していますが、スライダーを動かし、音量を調整しても、 各フレームで別の新しい音声が読み込まれる度に、 スライダーが元に戻ってしまい。音量も変化してしまいます。 これを維持したいのですが、自分の力では、良い方法が思いつかな くて困っており、アドバイスお願い致します。 bgSound = new Sound(this); bgSound.attachSound("sound1"); bgSound.start(0, 1); slider.slideBar._y = -30; slider.slideBar.onEnterFrame = function() {   bgSound.setVolume(0-this._y); }; slider.slideBar.onPress = function() {   startDrag(this, false, this._x, -60, this._x, -0); }; slider.slideBar.onRelease = slider.slideBar.onReleaseOutside=function () {   stopDrag(); };

    • ベストアンサー
    • Flash
  • 2つの音のボリューム制御

    質問させてください。 Flashで2つの音を鳴らしたいと考えています。 一つはタイムラインにおいて、画面と同期させて います。二つ目は常に鳴るようにサウンドオブジェクト で鳴らしています。 問題は、setVolumeで音のボリュームを制御したいの ですが、下記のように2つのサウンドオブジェクトを 作成しても、最後に設定したsetVolumeに2つの音が ボリューム指定されてしまって、別々にボリューム 制御ができません。 (下記のように、タイムラインの音は30、スクリプト 制御の音は80で設定したい。) ●タイムラインの1フレーム目のフレームアクション _root.snd = new Sound(); _root.bgmsnd = new Sound(); //タイムライン用のボリューム指定 _root.snd.attachSound("menu1"); _root.snd.setVolume(30); //スクリプト制御用のボリューム指定 _root.bgmsnd.attachSound("bgm"); _root.bgmsnd.setVolume(80); _root.bgmsnd.start(0,99999); 解決方法、おわかりの方おられますでしょうか? Flash MX 2004 Windows XP

    • ベストアンサー
    • Flash
  • flashの音再生について

    main.swfにactionscript2.0で音のon/offしているのですが、 offになって欲しくない音までoffになってしまいます。 スクリプトで呼び出している音ならばまだわかるのですが、 flvで外部から読み込み再生しているファイルなので、 訳が分からず困っています。 ちなみに音再生スクリプトはフレーム上に以下 //BGM制御用のダミーのムービークリップを作る this.createEmptyMovieClip( "bgm_clip" , 0 ); //BGMの設定 sndbgm = new Sound( bgm_clip ); sndbgm.attachSound( "BGM01" ); sndbgm.setVolume( 100 ); sndbgm.onSoundComplete = function() { //無限ループ再生 sndbgm.start(); }; //BGMを再生 sndbgm.start(); //BGMのボリュームとフェードの速さを管理する変数 bgm_vol = 100; fade_spd = 5; //SE設定 allse = new Sound(); allse.setVolume( 100 ); S1 = new Sound(this); S1.attachSound("SE01"); S2 = new Sound(this); S2.attachSound("SE02"); S3 = new Sound(this); S3.attachSound("SE03"); on/offにはMCで以下の様にしています。 on (release) { if (this._parent.sndbgm.getVolume()>0) { this._parent.sndbgm.setVolume(0); this._parent.allse.setVolume(0); this._parent.v_on_off.gotoAndStop("soundOFF"); } else if (this._parent.sndbgm.getVolume()<=0) { this._parent.sndbgm.setVolume(100); this._parent.allse.setVolume(100); this._parent.v_on_off.gotoAndStop("soundON"); } } SE再生にはフレーム上に S1.start(); と入れています。 使用バージョンはCS4になります。 どなたか判る方、教えて下さい。

    • ベストアンサー
    • Flash
  • ActionScriptで対象外の音まで止まる・・・。

    フレームに以下のような記述をしたのですが動作が変です。初期段階で「oto1」が鳴っており、インスタンス「b1」をクリックで止まります。これは想定どおりの動作なのですが、「b2」をクリックしても止まるのです。これは理解できません。 何が誤りなのか教えていただけませんでしょうか? よろしくお願いいたします。 (インスタンス名は正しくつけています) oto1 = new Sound(); oto2 = new Sound(); _root.oto1.attachSound("s1"); _root.oto2.attachSound("s2"); _root.oto1.start(0, 99); this.b1.onRelease = function(){ _root.oto1.stop(); }; this.b2.onRelease = function(){ _root.oto2.stop(); };

    • ベストアンサー
    • Flash
  • flashで、 サウンドONで始まりON/OFFボタンで制御したい

    サウンドが鳴っている状態で始まり、それをON/OFFボタンで制御したいのですが、参考書やネットに載っているものを参考に作ろうとしているのですが、どうしてもできません。 サウンドなしの状態で始まり、それをON/OFFボタンで制御するものは、http://oshiete1.goo.ne.jp/qa2790650.html にある、serial74さんの回答を使わせていただきました。 これを応用すればきっとできるのだと思いますが、参考書を一通り終えた初心者で、いろいろと変えてみたのですがわかりません。 どなたか教えていただけると大変助かります。 以下、“FLASHでサウンドのON/OFFボタンでBGMの再生を制御したい”の質問へのserial74さんの回答です。 引用はじめ-------- may_07さんの求めていらっしゃるレベルが分からないので細かく書いていますが「こんなの知ってるよ」と気を悪くなさらないでくださいね。 ▼コレをボタンにしたいムービークリップに書いてみてください。 ************************* onClipEvent(load){ Oto=new Sound(); //サウンド用空オブジェクトOtoを作る Oto.attachSound("xxxxxx"); //Otoにサウンドを割り当てる SoundFlag=false; //音の状態フラグをfalse=鳴っていないにしておく } onClipEvent(enterFrame){ this.onPress=function(){ //コレをクリックしたとき if(SoundFlag==true){ //音が鳴っていたら Oto.stop(); //音を止める SoundFlag=false; //音の状態フラグを切り替える } else{ //音が鳴っていなかったら Oto.start(0,999); //音をループ再生 SoundFlag=true; //音の状態フラグを切り替える } } } ************************* ●すでに音の読み込みができている状態でしたらonClipEvent(load){}内はムシしてください。 ●「Oto」「SoundFlag」は変数なので自分のわかりやすい名前にしてください。 ●「xxxxxx」はライブラリを開く→読み込んだサウンドを選択→ライブラリのメニュー→リンケージ→識別子でつけた名前です。 ●サウンドをスクリプトで扱うときは、サウンド自体に名前(識別子)をつけて、さらにサウンドオブジェクトにしてあげて(よく「関連づける」と言われます)、サウンド オブジェクトの設定をいじる、といった流れです。 引用おわり-------- serial74さんの回答のとおりに私が作ると、ボタンを押しても1回目は反応がなく2回目にサウンドONになります。(ブラウザを通した場合) ブラウザを通さずswfそのものでは、ボタンを押すと1回目でONになります。 きっと基本的なところでつまずいているのだと思いますが、原因がわかりません。こちらについても原因がお分かりの方がいらっしゃったらご教示ください。 どうぞよろしくお願いします。

  • レイヤーごとに音量を調節したいです。

    レイヤーごとに音量を調節したいです。 環境 ・ Flash Professional CS5 ・ ActionScript 1.0 & 2.0 画像の色分け部分について説明します。 ●ピンク色・・・ここにはサウンドがあります。(同期は開始) ●水色・・・ここにはピンク色とは別のサウンドがあります。(同期は開始) ●黄色・・・これは、再生されているサウンドを停止するものです。(同期は停止) ●赤色・・・ここには以下のスクリプトを記述しました。 【var sound_obj = new Sound(this.root); sound_obj.setVolume(100); 】 ●青色・・・ここには以下のスクリプトを記述しました。 【var sound_obj = new Sound(this.root); sound_obj.setVolume(50); 】 この状態だと、すべてのサウンドオブジェクトの音量が、スクリプトを記述したフレームのところで音量が変化してしまいます。 これをレイヤーごとに音量を調整させたいのですが、どうすればよろしいでしょうか。 ※ピンク色のサウンドを100へ。水色のサウンドを50とした時。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部読み込みムービー上の音楽制御

    ステージにムービークリップを置いて、そこに外部のムービーを読み込んでいます。 その外部のムービー上で音楽が流れており、その音楽のボリュームを変えたいと思っているのですが、どうもうまく行かないのです。 下記はボリュームオン・オフ用のムービークリップに書いたスクリプトです。(music_button) //クリックされた時にオン・オフを切り替える on(press){ music = music * (-1); //サウンドのオンオフを切り替える s1_sound.setvolume(music*100); if (music = 1){s1_sound.start();} else{s1_sound.stop();} } 外部のムービークリップ上の音楽には「BGM」という識別子をつけています。 上記のmusic_buttonの置いてあるメインタイムラインの2フレーム前で _global.s1_sound = new Sound(); s1_sound.attachsound("BGM"); という宣言をしています。 何か音楽を制御するための要素が足りないのでしょうか。あるいは、階層の指定などが間違っているのでしょうかね。。。 何か手がかりをご存知の方よろしくお願いします。

    • ベストアンサー
    • Flash
  • 既に配置されているMCを外部から制御する(2)

    度々申し訳ございません。 分かったつもりだったのですが、MCを動かすしかできませんでした。 これは間違いでしょうか? onClipEvent(mouseDown){ a=a+1; my_sound2.start(0,1); Play(); } クリックがあったときに 変数のカウントをして 音を鳴らすだけの事なのですが クリップイベントでは使えないのでしょうか? 音も鳴りませんし、変数にも代入されていないようなのです。 お手数ですが、宜しくお願いします。 尚、メインタイムラインの一番最初のフレームで 変数の宣言(?) a=0; と、 音の設定 my_sound2=new Sound(); my_sound2.attachSound("gan1"); は済ませてあります。 ライブラリのリンケージ登録も完了しています。

    • ベストアンサー
    • Flash
このQ&Aのポイント
  • 先月買ったばかりの新品MFC-J7300CDWで印刷ができておらず、123ページの両面印刷をする際に紙詰まり、用紙角の折れ曲がり、インク汚れのトラブルが発生しています。
  • 接続は無線LANで行っており、パソコンのOSはWindows10です。関連するソフト・アプリは特にありません。電話回線の種類はひかり回線です。
  • この問題に対してどのような解決方法があるのか、エラーの原因や改善策について教えてください。
回答を見る