こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

外部読み込みムービー上の音楽制御

ステージにムービークリップを置いて、そこに外部のムービーを読み込んでいます。
その外部のムービー上で音楽が流れており、その音楽のボリュームを変えたいと思っているのですが、どうもうまく行かないのです。

下記はボリュームオン・オフ用のムービークリップに書いたスクリプトです。(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");

という宣言をしています。

何か音楽を制御するための要素が足りないのでしょうか。あるいは、階層の指定などが間違っているのでしょうかね。。。

何か手がかりをご存知の方よろしくお願いします。

投稿日時 - 2006-01-12 17:00:43

QNo.1891548

すぐに回答ほしいです

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

読み込む側のSWFをMain.swf
Main.swfのステージ(_root)にあるムービークリップをMC
読み込まれるSWFをLoad.swfとします

music_buttonがどちらのswfにあるかわからないので
勝手にMain.swfにあるとします。

//Main.swf ルートのタイムライン
_root.MC._lockroot = true; //読み込まれるswfのルート参照を指定
_root.MC.loadMovie("Load.swf"); //swf読み込み
_root.music=1 //値の初期化

//Main.swf ルートにあるボタンmusic_buttonのボタンアクション
on (release) {
this.music = this.music*(-1); //フラグ反転
if (music == 1) { //1のとき 比較は==です。
this.MC.s1_sound.setVolume(100); //ボリューム設定
} else {
this.MC.s1_sound.setVolume(0);
}
}

//Load.swf ルートタイムライン
var s1_sound = new Sound(this); //loadMovieで読み込むときはthisが必要
this.s1_sound.attachSound("BGM");
this.s1_sound.start();

で出来きます。

投稿日時 - 2006-01-13 02:20:17

お礼

詳細な解説どうもありがとうございます。
おかげさまで解決いたしました。
どうやら、アクションスクリプトの基本的な記述方法をもっとちゃんと勉強しないとだめなようですね。

投稿日時 - 2006-01-13 10:28:11

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-