as3 sound fade in fade out

2011年5月15日 星期日 by Hu, Ching-Hsiang


// Initialize sound variables
var so:Sound = new Sound();
var sc:SoundChannel;
var fadeInIncr = 0.1;
var sAmbienceVol:SoundTransform = new SoundTransform(fadeInIncr, 0); // 1=vol, 0=pan
var soundFadeOutTimer:Timer = new Timer(100,10);
var soundFadeInTimer:Timer = new Timer(100,10);
soundFadeOutTimer.addEventListener("timer", soundFadeOut);
soundFadeInTimer.addEventListener("timer", soundFadeIn);
soundFadeOutTimer.addEventListener(TimerEvent.TIMER_COMPLETE, soundOutComplete);
soundFadeInTimer.addEventListener(TimerEvent.TIMER_COMPLETE, soundInComplete);
loadMusic()
var soundFadeInSwitch:Boolean =false;
var soundFadeOutSwitch:Boolean =true;
function loadMusic():void{
so = new Sound(new URLRequest("xxx.mp3"));
so.addEventListener(Event.COMPLETE, soundLoadComplete);
so.addEventListener(ProgressEvent.PROGRESS, soundprogressHandler);
}
function soundprogressHandler(event:ProgressEvent):void {
var loadTime:Number = event.bytesLoaded / event.bytesTotal;
var loadPercent:uint = Math.round(100 * loadTime);
sound_mc.loaded_txt.text =loadPercent + "%";
}
function soundLoadComplete(event:Event):void {
sound_mc.loaded_txt.text ="";
startMusic();
sc = so.play(0, 1, sAmbienceVol);
}
function stopMusic():void{
soundFadeOutSwitch=false;
soundFadeOutTimer.reset();
soundFadeOutTimer.start()
}
function startMusic():void{
soundFadeInSwitch=false;
soundFadeInTimer.reset();
soundFadeInTimer.start()
}
function soundFadeOut(e:TimerEvent){
trace(fadeInIncr);
if(fadeInIncr>0){
fadeInIncr -= 1/10;
}else{
fadeInIncr=0;
soundFadeOutTimer.stop();
}
sAmbienceVol = new SoundTransform(fadeInIncr, 0);
sc.soundTransform = sAmbienceVol;

}
function soundFadeIn(e:TimerEvent){
trace(fadeInIncr);
if(fadeInIncr<=1){ fadeInIncr += 1/10; }else{ fadeInIncr=1; soundFadeInTimer.stop(); } sAmbienceVol = new SoundTransform(fadeInIncr, 0); sc.soundTransform = sAmbienceVol; } function soundInComplete(e:TimerEvent):void { sAmbienceVol = new SoundTransform(1, 0); sc.soundTransform = sAmbienceVol; soundFadeInSwitch=true; } function soundOutComplete(e:TimerEvent):void { sAmbienceVol = new SoundTransform(0, 0); sc.soundTransform = sAmbienceVol; soundFadeOutSwitch=true; }

Filed under having  

0 意見: