- 締切済み
ある音のPanが他の音の設定に釣られてしまう
attachSoundを使って複数の音を同時に鳴らしているのですが、音Aと音Bがあるとします。この音Aは最初Pan-100の位置で鳴っているのですが、音Bが鳴った瞬間なぜかPan位置が音Bのものになってしまうのです。設定等に間違いはありません。このような現象って起こりうるのでしょうか?対処法を教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- DPE
- ベストアンサー率85% (666/776)
音を鳴らす Sound オブジェクトを作る new Sound は、正式には制御するムービークリップを指定することになっています。 省略すると、_root 、つまりムービー全体の音を制御する Sound オブジェクトが作成されます。 ムービークリップは音を出力するチャンネルとしての役割を果たします。 複数の Sound オブジェクトを作ると同時に2種類以上の音を出すことはできるのですが、1つのムービークリップに設定できるボリュームやパンは1つだけです。 たとえ複数の Sound オブジェクトを作って複数のボリュームやパンを設定していたとしても、これらがいずれも同じムービークリップの音を制御している時は、最後に設定したものがそのムービークリップの音の出力設定として採用されます。 違う出力設定で音を鳴らしたい場合は、その分だけチャンネルであるムービークリップを用意する必要があります。 例えば2種類の出力設定で鳴らすなら、ムービークリップを2つ用意し、それぞれのムービークリップの音を制御する Sound オブジェクトを作成して音を管理するようにします。 スクリプトにしてみますと、大体次のようになります。 音を鳴らす Sound.start の実行タイミングやリンケージ名などは作品に合わせて適宜変更してください。 (↓各行頭に全角のスペースが入っています。コピーする際はご注意ください) //ダミーのムービークリップを作成 this.createEmptyMovieClip( "dummy_a" , 0 ); this.createEmptyMovieClip( "dummy_b" , 1 ); //オブジェクトの作成 //2種類の音を2つのムービークリップを使って出力する snd_a = new Sound( dummy_a ); snd_b = new Sound( dummy_b ); //サウンドシンボルを割り当てる snd_a.attachSound( "A" ); snd_b.attachSound( "B" ); //パンの設定 //Aを左、Bを右スピーカーから出す snd_a.setPan( -100 ); snd_b.setPan( 100 ); //再生開始 snd_a.start(); snd_b.start(); 空っぽのムービークリップをスクリプトで作る createEmptyMovieClip は Flash Player 6(作成ツールは Flash MX )以降で使えます。 Flash 5 をお使いの場合は、絵のないムービークリップシンボルを作り、インスタンスをステージに2つ配置するなどして対応してください。