デジタル・インフォメーション/デジタル・フォー・ミー [PC等のデジタル製品の疑問、トラブル解決に]
PC・デジタル製品の疑問、困ったことを検索。
:AND検索 :OR検索
【 【Flash】Soundクラスについて 】
更新日時:2013年4月19日(金) 16:57:58
投稿日時:2013年4月18日(木) 16:30:22
このエントリーをはてなブックマークに追加

2つ以上のサウンドを別々に制御したい場合などに
Soundクラスをよく理解していないと、落とし穴があるので記録。

例えば、BGMとSEなどを分けたい場合。
var se_sound = new Sound();
var bgm_sound = new Sound();
などと書きますが、この場合だと、設定したボリュームなどが
双方で相殺されてしまいます。
というのはnew Sound()にしてしまうと、ムービークリップターゲットが
デフォルト値(初期値)の_rootになってしまうからです。
new Sound()の()内は対象ムービークリップを指定しなければいけません。

どういうことかというと、サウンドを鳴らすのに
ムービークリップ内で鳴らす…と言えばいいのでしょうか。
例えば上記のSEとBGMの場合、
SE用のサウンドを鳴らすムービークリップ(空でOK)
BGM用のサウンドを鳴らすムービークリップ(空でOK)が
必要になります。
サウンドを鳴らす場合、1つだけなら
_rootでかまわないかもしれませんが、2つ以上の場合は要注意です。
書き方は
var se_sound=new Sound("se_sound_mov");
var bgm_sound=new Sound("bgm_sound_mov");
という感じです。
少々手間ですが、se_sound_movやbgm_sound_movは
あらかじめ作成する必要があります。

インラインに初めから配置する場合でも、
attachmovieやcreateEmptyMovieClipを使ってもかまわないと思います。
ただ、各関数の書式には御注意ください。
特に深度(depth)のカブリなどは前のインスタンスを消してしまう
原因になりますので要注意です。

変数指定の場合は
var se_sound=new Sound(hogehoge1);
var bgm_sound=new Sound(hogehoge2);
などと、""ダブルコーテーションは必要ありません。
}

【 Digital Information / Digital For Me】
Copyright (C) Gontaro-Systems. All Rights Reserved.