0

URLではなくライブラリのサウンドファイルを使用しています。

私はサウンドボードを作っており、バックグラウンドミュージックを再生するボタンがあります。ロード時に自動的に再生するのではなくボタンを使用する理由は、それぞれに独自のボタンがあるいくつかの異なるバックグラウンドミュージックから選択できるためです。

サウンドを再生するボタンは他にもいくつかあります。他の音を鳴らしながら、バックグラウンドの音量を0.3程度に下げたい。サウンドの再生時に増加し、サウンドの再生が終了すると減少する、soundCountのような変数を作成する必要があると思います(複数のサウンドが同時に再生されている場合、カウントするまでバックグラウンドミュージックが通常に戻らないようにするため) 0にあります)。

これを設定するための最良の方法は何ですか?soundCount変数を作成しましたが、効果音の再生が終了したときのイベントリスナーを作成できません。

4

1 に答える 1

3

AS3でサウンドの音量を変更するには、SoundChannelおよびSoundTransformクラスを使用する必要があります。

var backgroundMusic:Sound = // Assuming you've loaded a sound

var myChannel:SoundChannel = new SoundChannel();
myChannel = backgroundMusic.play();

var myTransform = new SoundTransform();
myChannel.soundTransform = myTransform;

play通話中にカウントを増やしたり、イベント中に減らしたりして、バックグラウンドでの合計サウンドを追跡しSOUND_COMPLETEます。イベントリスナーを他のサウンドのチャンネルに追加して、他のサウンドbackgroundの音量を変更できるようにします。

var totalCurrentSounds:int = 0;

otherSoundChannel.addEventListener(Event.SOUND_COMPLETE, otherSoundComplete);
// Make sure this is on a SoundChannel, not the Sound itself.

最後に、カウントが0のときにSoundTransformのメンバーを変更します。volume

function otherSoundComplete(e:Event):void {
    totalCurrentSounds--;
    if (totalCurrentSounds <= 0) 
        myTransform.volume = 0.5;
}
于 2012-12-31T19:24:57.977 に答える