Ciao,
per operare sul volume e sul panning degli oggetti Sound devi utilizzare la classe SoundTransform che dovrai attribuire come proprietà di un oggetto SoundChannel.
Puoi trovare la guida online sull'utilizzo di SoundTransform: http://help.adobe.com/it_IT/ActionSc...0204-7d1f.html
Ti posto uno script di esempio. Supponi di avere due suoni concatenati in libreria e di utilizzare il componente fl.controls.Slider.
Codice PHP:
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import fl.controls.Slider;
import fl.events.SliderEvent;
// Creo i due oggetti che contengono i suoni.
// In questo caso ho due suoni concatenati in libreria
var oggettoSuono1:Sound = new Traccia1();
var oggettoSuono2:Sound = new Traccia2();
// Creo i due oggetti SoundTransform con cui posso gestire volume e panning
var trasformSuono1:SoundTransform = new SoundTransform(1, 0);
var trasformSuono2:SoundTransform = new SoundTransform(1, 0);
// Creo i due canali a cui applico gli oggetti suono e relativi SoundTransform
var canaleSuono1:SoundChannel = oggettoSuono1.play(0,999,trasformSuono1);
var canaleSuono2:SoundChannel = oggettoSuono2.play(0,999,trasformSuono2);
// Istanzio e imposto lo slider
var slider:Slider = new Slider();
slider.x = 50; //posiziono lo slider
slider.y = 100;
slider.setSize(400,10); // dimensiono lo slider
slider.minimum=-1; // imposto il range di valori su cui operare (da -1 a +1, il valore restituito sarà poi ripartito per i due suoni)
slider.maximum=1;
slider.snapInterval=.1; // imposto incremento del cursore e spaziatura delle tacche
slider.tickInterval=1;
slider.value = 0; // al valore 0 il cursore è centrato
slider.addEventListener(SliderEvent.THUMB_DRAG, regolaVolumi) // applico il listener che sarà richiamato durante il trascinamento del cursore
addChild(slider);
function regolaVolumi(e:SliderEvent):void{
var valore = e.currentTarget.value; // Prelevo il valore dello slider
// Aggiorno la proprietà "volume" dei due SoundTransform
// tenendo presente che il volume sarà massimo per entrambi i suoni quando il cursore sta al centro.
// Il valore ottenuto potrebbe arrivare fino a 2 anche se flashplayer lo limiterà comunque ad 1. Per scrupolo posso usare Math.min cosi da avere un valore massimo di 1
trasformSuono1.volume = Math.min(1,1-valore);
trasformSuono2.volume = Math.min(1,1+valore);
canaleSuono1.soundTransform = trasformSuono1; // Applico i SoundTransform aggiornati
canaleSuono2.soundTransform = trasformSuono2;
}