- ベストアンサー
レイヤーごとに音量調節する方法
- Flash Professional CS5の環境で、レイヤーごとに音量を調整する方法について説明します。
- 画像の色分け部分には、ピンク色と水色の2つのサウンドがあります。黄色の部分はサウンドの再生停止を示し、赤色の部分と青色の部分には音量調整のスクリプトが記述されています。
- 現在の設定では、スクリプトを記述したフレームですべてのサウンドオブジェクトの音量が変化してしまいます。解決策として、ピンク色のサウンドを100、水色のサウンドを50に設定する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連する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
- 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
- ボリュームスライダー(音量)を維持したい
下記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
- レイヤーを動かしたい!
レイヤーをボタンを押すと親レイヤーの中で子レイヤーがスクロールさせるようにしたいのですが、 下記のスクリプトでY軸方向にというのは出来るのですが、これをX軸方向に変えたいのです。 どこら辺をいじればよいのでしょうか? (おそらく必要と思われる部分を抜粋しています。) var speed=40 var loop, timer function makeObj(obj,nest){ nest=(!nest) ? '':'document.'+nest+'.' this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight this.up=goUp;this.down=goDown; this.moveIt=moveIt; this.x; this.y; this.obj = obj + "Object" this.timerID= null; eval(this.obj + "=this") return this } function moveIt(x,y){ this.x=x;this.y=y this.css.left=this.x this.css.top=this.y } function goDown(move){ if(this.y>-this.scrollHeight+oCont.clipHeight){ this.moveIt(0,this.y-move) if(loop) this.timerID= setTimeout(this.obj+".down("+move+")",speed) } } function goUp(move){ if(this.y<0){ this.moveIt(0,this.y-move) if(loop) this.timerID= setTimeout(this.obj+".up("+move+")",speed) } } function scroll(speed){ if(loaded){ clearTimeout(oScroll.timerID); loop=true; if(speed>0) oScroll.down(speed) else oScroll.up(speed) } } function noScroll(){ loop=false if(timer) clearTimeout(timer) }
- 締切済み
- JavaScript
- setVolumeで設定するとフレームの音量が下がる
質問失礼いたします。 setVolumeで下記のように設定します obaとotoは変数です。 Oba=new Sound(); Oba.attachSound("obake"); Oba.setVolume(10); Oba.start(0,999); Oto.setVolume(0); この設定をするとOtoで設定したボリュームになってしまい。 Obaの方の音量も0になってしまいます。 バラバラに設定したいのですが、どうしたらいいでしょうか。 ちなみに Oba.attachSound("obake"); のobakeはリンゲージから音の識別子につけた名前です。 よろしくお願いします。
- ベストアンサー
- Flash
- 一つのレイヤーのみフィルターをかける方法
FLASH8です。 写真の自動スライドショー的なものを作成しようとしています。 あるサイトにあった無料スクリプトをコピペし、表示は問題なくできるようになりました。 そのスクリプトは外部から写真を読み込み、画像と画像のフェードイン・アウト時にブラーエフェクトでつないでいくものです。(下記参照) これにレイヤーを一つ追加し、追加したレイヤー(上階層)はずっと表示させておきたいのですが、そのレイヤーの画像にまでエフェクトがかかってしまいます。 エフェクトをかからないようにする方法はありませんか? ちょっと説明が足り無いかもしれないんですが、何の情報を言ったらいいか分からないので、よければ補足要求いただければ回答いたします。 よろしくお願い致します。 ============================== import flash.filters.BlurFilter; var picsArray:Array = new Array("flash/01.jpg","flash/02.jpg","flash/03.jpg","flash/04.jpg"); var filter:BlurFilter = new BlurFilter(0, 0, 3); var picNum:Number = 0; var nextPic_int:Number var picHolder:MovieClip = _root.createEmptyMovieClip("picHolder", 1); function fadeOut(){ clearInterval(nextPic_int); picHolder.onEnterFrame = function(){ if(this._alpha > 0){ this._alpha -= 1; filter.blurX = (100 - this._alpha) / 4; filter.blurY = (100 - this._alpha) / 4; this.filters = [filter]; }else{ delete this.onEnterFrame; loadPic(); } } } function loadPic(){ trace("picNum: " + picNum); //load the pic here picHolder.createEmptyMovieClip("pic", 1); picHolder._alpha = 0; picHolder.pic.loadMovie(picsArray[picNum], 1); picHolder.onEnterFrame = function(){ if(picHolder.pic.getBytesLoaded() > 4 && picHolder.pic.getBytesLoaded() == picHolder.pic.getBytesTotal()){ this.onEnterFrame = function(){ if(this._alpha < 100){ this._alpha += 2; filter.blurX = (100 - this._alpha) / 4; filter.blurY = (100 - this._alpha) / 4; this.filters = [filter]; }else{ delete this.onEnterFrame; nextPic_int = setInterval(fadeOut, 10000); } } } } if(picNum == picsArray.length - 1){ picNum = 0; }else{ picNum++; } } loadPic(); stop(); ==============================
- ベストアンサー
- 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
- 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
- Flash8でサウンドが鳴りません
Flash初心者です。 ActionscriptでBGMを流し、ユーザーがプレイとストップの制御ができるようにしたいのですがうまくいきません。 1、ボタンA(レイヤー1)とボタンB(レイヤー2)を作り、文字(レイヤー3)とscript(レイヤー4)を組み合わせてオブジェクトを作りシンボル化しました。 2、ライブラリ内のwavサウンドをリンゲージしました("bgm") 3、レイヤー4の1フレーム目に this._sound = new Sound(); this._sound.attachSound("bgm"); this._sound.start(0,999); 4、ボタンAに on(release){ this._sound.start(0,999); } 5、ボタンBに on(release){ this._sound.stop(); } と記述してあります。 シーンプレビューでは音が鳴り制御もできるのですが、 上記のシンボルをシーンのレイヤーに配置してムービープレビュー すると音が鳴りません。 どうしてでしょう?? さっぱり分からず困り果ててます。 どなたかご伝授御願いします。
- 締切済み
- Flash
- カーソルが特定のオブジェクトに近づいていくと音量がゼロから最大に徐々に変化するAS2.0
カーソルが特定のオブジェクトに近づけば近づくほど指定した音源の音量がゼロから最大に徐々に変化する方法はありませんか。 以下の音量調節コントローラーを透明にして応用しようと考えましたが、 ----------------------- max_val = 100; // 最大音量設定 set_vol = 0; // 現在の音量設定 s_obj = new Sound(); // SoundObjの作成 s_obj.setVolume(set_vol); // ボリュームセット vol_width = vol_mask._width; // マスクwidth初期値取得 vol_mask._width = (vol_mask._width / max_val)*set_vol; // マスクの位置調整 vol_click.onPress = function(){ this.onEnterFrame = function(){ vol_mask._width = this._xmouse; vol_par = Math.round((vol_mask._width / vol_width)*max_val); if(vol_par < 1){ vol_par = 1; }else if(vol_par >= max_val){ vol_par = max_val; } s_obj.setVolume(vol_par); } } vol_click.onRelease = function(){ delete this.onEnterFrame; } vol_click.onReleaseOutside = function(){ delete this.onEnterFrame; } ------------ onPressの代わりにrollOverにするのと、widthだけでなくheightにも両方適用させる方法が解りません。 このような方法でなくとも、目的のものが出来ればいかなる方法でも結構です。 例えば犬のオブジェクトにカーソルを近づければ近づけるほど犬の鳴く音が大きくなり、遠ざけると音が小さくなるようなものです。 お考えのあるかたは是非ともご教授願います。 当方Flash8 AS2.0です。 宜しくお願いします。
- 締切済み
- Flash