トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     loadSoundとattachSoundの違いについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
あにぃ
Åê¹ÆNo.40903
投稿日時: 2008-11-30 18:23
職人
居住地: 北海道
投稿: 250
使用環境:
Flash8
FlashCS3
WinXP
FlashLite1.1 / 2.0
loadSoundとattachSoundの違いについて
いつも参考にさせていただいています。

loadSoundとattachSoundについてご教授願います。

var target_mst:MovieClip = this.createEmptyMovieClip("sd_mst", this.getNextHighestDepth());
var my_mst_sd:Sound = new Sound(target_mst);
my_mst_sd.setVolume(100);
var target_sd:MovieClip = target_mst.createEmptyMovieClip("sd_mc", 100);
target_mst.my_sd = new Sound(target_sd);
target_mst.my_sd.setVolume(100);
target_mst.my_sd.attachSound("hoge");
my_mst_sd.setVolume(0);
target_mst.my_sd.start(0, 1);
stop();

上記コードだと、my_mst_sdのVolumeが0の為、サウンドは鳴りません。ですが、
var target_mst:MovieClip = this.createEmptyMovieClip("sd_mst", this.getNextHighestDepth());
var my_mst_sd:Sound = new Sound(target_mst);
my_mst_sd.setVolume(100);
var target_sd:MovieClip = target_mst.createEmptyMovieClip("sd_mc", 100);
target_mst.my_sd = new Sound(target_sd);
target_mst.my_sd.setVolume(100);
target_mst.my_sd.onLoad = function(success:Boolean) {
	if (success == true) {
		my_mst_sd.setVolume(0);
		target_mst.my_sd.start(0, 1);
	} else {
		trace("Error");
	}
};
target_mst.my_sd.loadSound("hoge.mp3", false);
stop();

こちらのように、loadSoundで読み込んだ場合、my_mst_sdのVolumeを0にしてもサウンドが鳴ってしまいます。
なぜなのでしょうか?
ご教授願えますと幸いです。


----------------
質問する際には、ご自分でできる限り調べてから投稿して下さい

P・S 職人おめでとう。(08/10/09)

daniwell
Åê¹ÆNo.40911
投稿日時: 2008-12-1 17:37
新米
居住地: 東京
投稿: 6
使用環境:
WinXP
Flash8 Pro
FlashDevelop Bete9

InternetExplorer7
FireFox1.5
FlashPlayer10
Re: loadSoundとattachSoundの違いについて
何故かは自身もよく分かりませんが、loadSoundで読み込んだ場合、
親MC側のSoundオブジェクトからの音量の変更は、おそらくできないみたいです。

なので、親側から制御を行いたい場合、
(こういう場合は大抵複数のSoundの音量を一括で制御したい場合かと思いますが)
親MC内の変数を for~in で回して、個々に変更するとかしないとできないかなと思います。

for ( m in target_mst  ) {
	if ( target_mst[m].getVolume() != undefined  )
		target_mst[m].setVolume( 0 );
}
あにぃ
Åê¹ÆNo.40912
投稿日時: 2008-12-1 18:19
職人
居住地: 北海道
投稿: 250
使用環境:
Flash8
FlashCS3
WinXP
FlashLite1.1 / 2.0
Re: loadSoundとattachSoundの違いについて
回避方法はいくらでもありますので問題はないのですが、ただ気になっただけです。
個別にやらなくても、下記でなら対応できますし。

var my_mst_sd:Sound = new Sound();
my_mst_sd.setVolume(100);
var target_mst:MovieClip = this.createEmptyMovieClip("sd_mst", this.getNextHighestDepth());
var target_sd:MovieClip = target_mst.createEmptyMovieClip("sd_mc", 100);
target_mst.my_sd = new Sound(target_sd);
target_mst.my_sd.setVolume(100);
target_mst.my_sd.onLoad = function(success:Boolean) {
	if (success == true) {
		my_mst_sd.setVolume(0);
		target_mst.my_sd.start(0, 1);
	} else {
		trace("Error");
	}
};
target_mst.my_sd.loadSound("hoge.mp3", false);
stop();


----------------
質問する際には、ご自分でできる限り調べてから投稿して下さい

P・S 職人おめでとう。(08/10/09)

daniwell
Åê¹ÆNo.40914
投稿日時: 2008-12-1 19:45
新米
居住地: 東京
投稿: 6
使用環境:
WinXP
Flash8 Pro
FlashDevelop Bete9

InternetExplorer7
FireFox1.5
FlashPlayer10
Re: loadSoundとattachSoundの違いについて
ただ気になっただけ、ということですのでもういいかと思いますが、一応…。

下記だと、target_mst内で鳴っているサウンド以外の音楽や効果音なんかの音量も変わってしまうので、私の方法はあるMC内での制御と捉えていただけると幸いです。

引用:


var my_mst_sd:Sound = new Sound();
my_mst_sd.setVolume(100);
var target_mst:MovieClip = this.createEmptyMovieClip("sd_mst", this.getNextHighestDepth());
var target_sd:MovieClip = target_mst.createEmptyMovieClip("sd_mc", 100);
target_mst.my_sd = new Sound(target_sd);
target_mst.my_sd.setVolume(100);
target_mst.my_sd.onLoad = function(success:Boolean) {
	if (success == true) {
		my_mst_sd.setVolume(0);
		target_mst.my_sd.start(0, 1);
	} else {
		trace("Error");
	}
};
target_mst.my_sd.loadSound("hoge.mp3", false);
stop();



まあ、そういう状況がどれだけあるかと言われれば、そうそうないのかもしれませんが。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops