Boolean problem with Movieclip

Hey guys this is my first post here, so far looks like the best site for Flash Troubleshooting, which atm i am in great need of. I Am making a mini project atm, the general idea is a small application with 30 Movieclip Buttons on the stage, each corresponding to a music file, So far so good, I have a Movieclip on the stage, that when clicked loads a sound from my XML file. But… What i want is, When the button is clicked, the sound is loaded and played (and also alpha animation is triggered on the movieclips own timeline), and when the button is clicked again, that particular sound file is stopped (and so is the alpha animation). I Can get the Alpha animation to stop and start using If/Else statements but im stuck on how to Unload the song once it has clicked. :code: //import fl.events.SliderEvent; import flash.net.URLLoader; import flash.events.Event; import flash.events.IOErrorEvent; import flash.media.SoundTransform; //Variables var snd:Sound; var channel:SoundChannel; var trans:SoundTransform; var currSong:String; var currVol:int; var currPan:int; var songCount:int = 0; var songNum:int; var btnglow:Boolean = false; var btnSlct:Boolean = false; var songList_XML:XML; var xmlLoader:URLLoader = new URLLoader(); //XML xmlLoader.load(new URLRequest(“songlist.xml”)); xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); function errorHandler(event:Event):void { //error.text = "XML Loading error: "; } function xmlLoaded(event:Event):void { songList_XML = new XML(xmlLoader.data); loopA1.addEventListener(MouseEvent.CLICK, chooseSong); } function chooseSong(e:MouseEvent):void { switch (e.currentTarget.name) { case “loopA1” : songNum = 0; currSong = songList_XML.song[songNum + songCount].file; break; } if (snd!=null) { channel.stop(); } snd = new Sound(); snd.load(new URLRequest(currSong)); channel = new SoundChannel(); trans = new SoundTransform(.5,0); channel.soundTransform = trans; channel = snd.play(0,9); } //VOLUME KNOB knob_mc.addEventListener(MouseEvent.MOUSE_DOWN,turn); stage.addEventListener(MouseEvent.MOUSE_UP,endTurn ); function turn(e:Event):void { stage.addEventListener(MouseEvent.MOUSE_MOVE,turn); var position:Number = Math.atan2(mouseY - knob_mc.y,mouseX - knob_mc.x); var angle:Number=(position/Math.PI) * 180; if(channel!=null) { var st:SoundTransform = new SoundTransform(normalizeVolume(angle)); channel.soundTransform = st } knob_mc.rotation = angle; } function endTurn(e:MouseEvent):void { knob_mc.removeEventListener(MouseEvent.MOUSE_DOWN, turn); stage.removeEventListener(MouseEvent.MOUSE_MOVE,turn); knob_mc.addEventListener(MouseEvent.MOUSE_DOWN,turn); } function normalizeVolume( angle:Number ):Number { angle %= 360; if (angle < 0) { angle = 360 + angle; } return percentage(angle,0,360)/100 } function percentage( X:Number, minValue:Number, maxValue:Number ):Number { return (X - minValue)/(maxValue - minValue) * 100; } :code: Anyone have a smart idea?? Thanks In Advance :smiley: