home *** CD-ROM | disk | FTP | other *** search
- package classes.components
- {
- import flash.events.TimerEvent;
- import flash.media.SoundChannel;
- import flash.media.SoundTransform;
- import flash.utils.Timer;
-
- public class FadeChannel
- {
-
-
- internal var thisChannel:SoundChannel;
-
- internal var stepVolume:Number;
-
- internal var fadeTimer:Timer;
-
- internal var isFadeIN:Boolean;
-
- internal var sTransform:SoundTransform;
-
- public function FadeChannel()
- {
- fadeTimer = new Timer(1,1);
- super();
- }
-
- public function fadeIn(param1:SoundChannel, param2:Number, param3:Number) : *
- {
- isFadeIN = true;
- fadeTimer.stop();
- thisChannel = param1;
- sTransform = thisChannel.soundTransform;
- sTransform.volume = 0;
- thisChannel.soundTransform = sTransform;
- fadeTimer = new Timer(param2 / param3,param3);
- fadeTimer.addEventListener(TimerEvent.TIMER,fadeSound);
- stepVolume = 1 / param3;
- fadeTimer.start();
- }
-
- public function fadeOut(param1:SoundChannel, param2:Number, param3:Number) : *
- {
- isFadeIN = false;
- thisChannel = param1;
- fadeTimer.stop();
- fadeTimer = new Timer(param2 / param3,param3);
- fadeTimer.addEventListener(TimerEvent.TIMER,fadeSound);
- stepVolume = -1 * thisChannel.soundTransform.volume / param3;
- fadeTimer.start();
- }
-
- internal function fadeSound(param1:TimerEvent) : *
- {
- if(sTransform.volume + stepVolume >= 0)
- {
- sTransform.volume += stepVolume;
- thisChannel.soundTransform = sTransform;
- }
- else
- {
- thisChannel.stop();
- fadeTimer.stop();
- if(!isFadeIN)
- {
- thisChannel = null;
- }
- }
- }
- }
- }
-