//Scripting Sound
//Loading an external mp3
   var mySound:Sound = new Sound();
   mySound.load(new URLRequest("fire.mp3"));
   mySound.play();
////The above can be shortened to 2 lines of code like this:
   var mySound2:Sound = new Sound(new URLRequest("whoosh.mp3"));
   mySound2.play();
//Loading an internal sound
   var iSound:Sound = new Clang();
   iSound.play();
////Loading the full sound file or buffering a sound before playing
   var myMusic:Sound = new Sound();
   myMusic.load(new URLRequest("track1.mp3"));
   myMusic.addEventListener(Event.COMPLETE, onLoaded);
   function onLoaded(e:Event) {
   myMusic.play();
   }
//Buffer a sound using the SoundLoaderContext class
   //Pass miliseconds to SoundLoaderContext parameters, so 100000 is 10 seconds of sound to load before playing
   var myContext:SoundLoaderContext = new SoundLoaderContext(10000);
   var myMusic2:Sound = new Sound();
   myMusic2.load(new URLRequest("track1.mp3"), myContext);
   myMusic2.play();
//Controlling Sound
   var myMusic:Sound = new Sound();
   var myChannel:SoundChannel = new SoundChannel();
   var myTrans:SoundTransform = new SoundTransform();
   myMusic.load(new URLRequest("track1.mp3"));
   myChannel = myMusic.play(); 
   //the play method can take two parameters -- the offset (in miliseconds) and # of times to loop... so myMusic.play(1000, 3) would offset by 1 second and loop 3 times
var pausePos:Number = 0; //keep track of position
   var musicPlaying:Boolean = true; //keep track of if playing or not
   stop_btn.addEventListener(MouseEvent.CLICK, onClick);
   play_btn.addEventListener(MouseEvent.CLICK, onClick);
   pause_btn.addEventListener(MouseEvent.CLICK, onClick);
   volDown_btn.addEventListener(MouseEvent.CLICK, onClick);
   volUp_btn.addEventListener(MouseEvent.CLICK, onClick);
   panRight_btn.addEventListener(MouseEvent.CLICK, onClick);
   panLeft_btn.addEventListener(MouseEvent.CLICK, onClick);
   function onClick(e:MouseEvent) {
   
   switch (e.target) {
   
   case stop_btn: //stop sound
   myChannel.stop();
   pausePos = 0;
   musicPlaying = false;
   break;
   
   case play_btn: //play sound only if not already playing
   if (!musicPlaying) {
   myChannel = myMusic.play(pausePos);
   musicPlaying = true;
   }
   break;
   
   case pause_btn: //pause sound by tracking position
   pausePos = myChannel.position;
   myChannel.stop();
   musicPlaying = false;
   break;
   
   case volDown_btn: //volume
   myTrans.volume -= .1;
   if (myTrans.volume < 0) {
   myTrans.volume = 0;
   }
   myChannel.soundTransform = myTrans;
   break;
   
   case volUp_btn:
   myTrans.volume += .1;
   myChannel.soundTransform = myTrans;
   break;
   
   case panRight_btn: //panning 
   myTrans.pan = 1;
   myChannel.soundTransform = myTrans;
   break;
   
   case panLeft_btn:
   myTrans.pan = - 1;
   myChannel.soundTransform = myTrans;
   break;
 }
   }