• 締切済み

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
  • 回答数2
  • ありがとう数2

みんなの回答

noname#221395
noname#221395
回答No.2

一度こちらの方でも同じことを書いて作ってみたのですが、サウンドは再生されました。。。 ステージ上のムービークリップ内にある… スクリプトのレイヤー(フレーム) sound = new Sound(); sound.attachSound("bgm"); sound.start(0, 999); レイヤー1にあるボタンA on (release) { sound.start(0,999); } レイヤー2にあるボタンB on (release) { sound.stop(); } …と書きました。 一度thisをはずす。 サウンドの名前を_(アンダーバー)から始めない。 ...等も試してみてください。 こちらのFlash古いので、仕様の変更がされていたらすみません。。。

kogedoria
質問者

お礼

何度も回答して頂いてごめんなさい。 同じように試してみたのですがやはりだめでした。 試しにflashを書き出して見たのですがやっぱり再生されません。 ちなみにボタンAとボタンBはそれぞれ「グラフィック」ではなく「ボタン」としてシンボル化してあります。 で、ボタンのActionscriptはムービー内のレイヤーではなく ムービー内のボタン自体に書いてありますが、関係ないでしょうか? _rootやthisの意味も分からずただ参考書通りに書いているので さっぱり?ハテナ状態なのです。 こちらも色々と試してみることにします。 原因に心当たりがあればまた回答頂けると嬉しいです。

kogedoria
質問者

補足

それとflashとは関係ないのですが せめてポイントでお礼をと思ったのですが ありがとうポイントはどうやってつければいいんでしょう? 教えてgooも初めてなので・・・

noname#221395
noname#221395
回答No.1

ちょっと1番がわからないのですが、ムービークリップの中にボタンA・Bが入っていて、それをステージに配置しているということなのでしょうか? それならばボタンAとBのthisの部分を_rootにすれば鳴るような気がします。。。 ボタンA on(release){ _root._sound.start(0,999); } ボタンB on(release){ _root._sound.stop(); }

kogedoria
質問者

お礼

回答ありがとうございます! 大変困っていたので助かります。 _rootに直してみたのですができませんでした;; アクションレイヤー Actionscript レイヤー1     ボタンA(Actionscript) レイヤー2     ボタンB(Actionscript) レイヤー3     背景・文字等 という構成のムービークリップをステージのレイヤーにそのまま配置しています。 という説明でお解りになるでしょうか?

関連するQ&A

  • シーンをまたいだサウンドon/offボタンの設定

    シーンをまたいだサウンドon/offボタンの設定 お世話になります。 前回の質問で解決に至らなかったので再度お願いしたいと思います。 まず、やりたい事としまして、 ・BGMを一つのボタンでon/offを切り替えたい、音も表示も(ON)(OFF)というように。 ・シーンが1~4まで有り、BGMはシーンの切り替わりに関係なく1つのBGMがループで鳴るようにする。 ・表示したいFLASHとサウンドボタンは別けたくない(ローデング画面を入れてるのでローディングが  終わり次第サウンドがスタートされるようにしたいので1つのFLASHで制御する。) 下記を拝見し途中まではうまくいきました。 http://okwave.jp/qa/q3342022.html http://okwave.jp/qa/q1789705.html シーン1では問題なく音も表示もON/OFF切り替わります。 ただし シーン2以降ではon/off表示切り替わりません。(音はon/offになりますが表示が変わらないのです。) どうしても1つのフラッシュで制御したいのでなんとかこの方法を完成させたいのですが、、 ご指導いただければ幸いでございます。。 現在の行ってる方法としては、リンケージの設定を行い、Sound クラスで制御。 ON 、 OFF ボタンをムービークリップとして作り、フレーム1に OFF、フレーム2に ON の時に表示する絵を描いて、 そのボタンをそれぞれのシーンへ配置。 下記アクションスクリプトを記述 まず シーン1 ローデイィング終了と同時にBGMスタートさせたいので フレーム3に onClipEvent(load) { snd=new Sound(); snd.attachSound("bgm"); snd.onSoundComplete =function() { this.start(); }; snd.start(); //サウンドの再生状況を保持する変数 //再生時true、それ以外はfalse play_flg=true; //再生状況に応じたフレームを表示 gotoAndStop(Number(play_flg)+1); } on(release) { //サウンド再生時は止める if(play_flg) { snd.stop(); play_flg=false; } //停止中の場合は再生する else { snd.start(); play_flg = true; } //再生状況に応じたフレームを表示 gotoAndStop(Number(play_flg)+1); } そしてループの際音がダブってスタートしないようにsnd.start();を抜き、これ以降は シーン1フレーム3のsnd.start()を通らないおうタイムラインで制御。 フレーム4、シーン2以降のフレーム1に下記アクションを記述。 onClipEvent(load) { snd=new Sound(); snd.attachSound("bgm"); snd.onSoundComplete =function() { this.start(); }; //サウンドの再生状況を保持する変数 //再生時true、それ以外はfalse play_flg=true; //再生状況に応じたフレームを表示 gotoAndStop(Number(play_flg)+1); } on(release) { //サウンド再生時は止める if(play_flg) { snd.stop(); play_flg=false; } //停止中の場合は再生する else { snd.start(); play_flg=true; } //再生状況に応じたフレームを表示 gotoAndStop(Number(play_flg)+1); } ゴールデンウィークはこれを調べるので潰れてしまいました。。。(泣 しかも今だ解決できていません。 どうか皆々様方よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 【複数の音声】スタート&ストップ

    前にも似たような質問してますが 簡潔にソースのどこが悪いか教えてください。 音を複数出せるように 2種類の再生ボタンを用意します。 ストップボタンも同じように用意します。 ストップボタンを押すと 対応した音が消えるようにしたいのですが どうしたらよいでしょうか? 作成したこと。 1フレームに下記のASを挿入。 //サウンド・クラスのインスタンスを生成 _root.a.bgm01 = new Sound(bgm01); _root.b.bgm02 = new Sound(bgm02); MCを2つ作成。 インスタンスは"a"と"b"を用意。 その中にサウンド素材を"a"と"b"に フレーム1に入れる。 イベントはストップの状態。 ボタンに書いたソースはこちら。 ひとつめ↓ on (release) { _root.a.bgm01.attachSound("bgm01"); _root.a.bgm01.start(); } ふたつめ↓ on (release) { _root.b.bgm02.attachSound("bgm02"); _root.b.bgm02.start(); } 停止ボタンには↓ "a" on (release) { _root.a.bgm01.stop(); } "b" on (release) { _root.b.bgm02.stop(); } 作りかけのファイルは 【http://flash-moe.yi.org/bgm/bgm.fla】 質問が終了次第削除します。

    • ベストアンサー
    • Flash
  • サウンドのフェードイン・アウト

    製作環境はXPのMXです。 サウンドをattachSoundでライブラリから呼び出して流しているのですが、一番最初にフェードインさせて流したいときはどのように書けばいいでしょうか? また、on/offボタンを設置していて、今はstart/stopで制御しているのですが、これもフェードイン・アウトさせるようにしたいのですが、どう書けばいいしょでしょうか? 詳しい方がいましたら教えてください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • flashのBGMのoff/onボタン

    はじめまして。Flashがまだよくわかっていない初心者です。マニュアル本、こちらのhttp://oshiete1.goo.ne.jp/qa1789705.htmlを参考にやってみましたが、わかりません。お願いです。教えてください。 最初に開いたらBGMがデフォルトで鳴っていて、「サウンドOFF」ボタンを押すとBGMは停止し、アニメーションは最後までという内容です。 現在の状況および作成手順ですが、 「シーン1」には2つレイヤーがあり、1つ目のレイヤーは「but」とし、これにはサウンドOFF/ONのムービークリップを配置してあります。フレームは1つだけで、ここに下記を記述(action)しました。 ---------------------------------------- onClipEvent(load) { //サウンドを挿入 snd = new Sound(); snd.attachSound( "BGM" ); //無限ループ再生設定 snd.onSoundComplete = function() { this.start(); }; //サウンドの再生状況を保持する変数 //再生時true、それ以外はfalse play_flg = false; //再生状況に応じたフレームを表示 gotoAndStop( Number( play_flg ) + 1 ); } on(release) { //サウンド再生時は止める if( play_flg ) { snd.stop(); play_flg = false; } //停止中の場合は再生する else { snd.start(); play_flg = true; } //再生状況に応じたフレームを表示 gotoAndStop( Number( play_flg ) + 1 ); } ---------------------------------------- 2つ目のレイヤーには「写真」という名前で写真5枚がフェードインアウトしながら切り替わる、というムービークリップを制作しました。 これをプレビューすると、ムービーは実行されますがBGMは鳴りません。また「サウンドOFF」「サウンドON」のボタンが繰り返してしまいます。 デバック出力で下記エラーと表示されます。 ---------------------------------------- **エラー** シーン = シーン 1, レイヤー = but, フレーム = 1 :行 1:クリップイベントはムービークリップインスタンスでのみ使用可能です。 onClipEvent(load) **エラー** シーン = シーン 1, レイヤー = but, フレーム = 1 :行 21:マウスイベントはボタンインスタンスでのみ使用できます。 on(release) ActionScript エラー数 :2 報告済みエラー :2 ---------------------------------------- どうかどのようにしたらいいのか教えてください。お願いします。

  • 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
  • AS2でキーによる音楽制御について

    AS勉強中で初心者の者です。 今回キーによる音楽制御を勉強しておりまして、不明点がありますので教えてください。 環境はwindows、Flash5.5、AS2です。 内容はAキーを押すと音楽がループ再生し、Bキーを押すと音楽が停止するもの。また他のキーを使って複数の音楽を同時再生、そのうちの1つの音楽のみを停止させる等、複数の音楽をそれぞれ制御できるものを制作したいです。 現在ライブラリにボタン1とボタン2、リンゲージ設定されたsoundAを用意し、シーン1にボタン1を配置し、ボタン1に on (release) { soundObj.start(0, 100); } を書きました。 同じようにシーン1にボタン2を配置し、ボタン2に on (release) { soundObj.stop("soundA"); } を書きました。 そして、シーン1のタイムライン1フレーム目に soundObj = new Sound(); soundObj.attachSound("soundA"); を書きました。 これではステージ上のボタン1、2をマウスクリックすることで音楽を制御することになります。 これをキーで制御したいのですが、どのようにすればいいのでしょうか? 自分なりに模索したのはon (release) をonClipEvent(onKeyDown)にすればいいのか(←これだとAキー等の指定はどうすればいいか?)、on (release) ではなくKey.isDown(65);を使うのか(これは動かなかったので、何かた足りないのか?)です。 後はそもそもキーで制御する際はボタンではなく、ムービークリップの方がいいのでしょうか? 説明が下手で至らない点もあるとは思いますが、どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • 異なるsoundを続けて再生する方法は?

    FLASH MXを使い始めた初心者です。 ボタンをクリックすると異なる音続けてが再生するように、アクションスクリプトを書いたのですが、ほぼ同時に再生されます。何か良い方法があれば教えてください。 test.wavとtest2.wavはライブラリに取り込み、リンケージでtestとtest2という識別子でアクションスクリプトへの書き出しを行っています。 ボタンのアクションスクリプトです。 on(Release){ objSound = new(this); objSound = objSound.attachSound("test"); objSound = start(); objSound2 = new(this); objSound2 = objSound.attachSound("test2"); objSound2 = start(); }

    • ベストアンサー
    • Flash
  • FLASHにサウンドを取り込みたい

    flash cs5を使用していますが Actionscriptは2.0で作業をしています。 やりたいことは ライブラリにあるサウンドファイルにリンケージ設定をして 効果音を利用したいのですが 以下のスクリプトでうまく音が出ません。なぜなのでしょうか。 教えてください。 ※リンケージは bgm と設定。 ファイルの拡張子はmp3とかwavでやってみました。 (1)フレーム1に _root.s1_sound=new Sound(); _root.s1_sound.attachSound("bgm"); _root.s1_sound.stop(); (2)ステージのボタンに on(press){ _root.s1.sound.start(); } と記述して実行しても音が出ません。 どうしてなのかわかりません。 よろしくお願いいたします。

  • 【音声個別に再生】

    まず音声の素材にリンケージで 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
  • 動画が始まったらBGMを止めたい

    質問させていただきます。 以下のようなサイトを作っているのですが、行き詰ってしまいました…。フルフラッシュのサイトですが、BGMを流しています。そのBGMは「オン/オフ」のボタンでストップすることができます。 サイト内で映像を紹介する箇所がありまして映像が始まったら、自動的にBGMが止るようにしたいのですが、今のところボタンを押して止める方法しかわかりません。(よく映画のサイトである予告編紹介みたいな感じです) 映像のほうは、Flash8でflvを書き出し、メインサイトとは別にウィンドウを開いて、表示させています。 まだまだFlash初心者で、特に音関連は見よう見真似でやっている状態なので、どっち方向に考えていったらいいものやら見当もつきません。 どうかよろしくお願いします。 ディレクトリ構成はこうです。 --index.html  「メイン」.swf  映像用.html(別ウィンドウで開く)  映像.swf  映像.flv 制御バーのスキン.swf 「メイン」.swf内のBGM制御ボタンのスクリプトはこうです。 onClipEvent(load) { oto=new Sound(); oto.attachSound("sound2"); snd.onSoundComplete=function() { this.start(); }; play_flg=true; gotoAndStop(Number(play_flg)+1); } on(release) { if(play_flg) { oto.stop("sound2"); play_flg=false; } else { oto.start(); play_flg=true; } gotoAndStop(Number(play_flg)+1); }

専門家に質問してみよう