home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / zombietypocalypse.swf / scripts / classes / components / FadeChannel.as next >
Encoding:
Text File  |  2008-09-15  |  1.9 KB  |  72 lines

  1. package classes.components
  2. {
  3.    import flash.events.TimerEvent;
  4.    import flash.media.SoundChannel;
  5.    import flash.media.SoundTransform;
  6.    import flash.utils.Timer;
  7.    
  8.    public class FadeChannel
  9.    {
  10.        
  11.       
  12.       internal var thisChannel:SoundChannel;
  13.       
  14.       internal var stepVolume:Number;
  15.       
  16.       internal var fadeTimer:Timer;
  17.       
  18.       internal var isFadeIN:Boolean;
  19.       
  20.       internal var sTransform:SoundTransform;
  21.       
  22.       public function FadeChannel()
  23.       {
  24.          fadeTimer = new Timer(1,1);
  25.          super();
  26.       }
  27.       
  28.       public function fadeIn(param1:SoundChannel, param2:Number, param3:Number) : *
  29.       {
  30.          isFadeIN = true;
  31.          fadeTimer.stop();
  32.          thisChannel = param1;
  33.          sTransform = thisChannel.soundTransform;
  34.          sTransform.volume = 0;
  35.          thisChannel.soundTransform = sTransform;
  36.          fadeTimer = new Timer(param2 / param3,param3);
  37.          fadeTimer.addEventListener(TimerEvent.TIMER,fadeSound);
  38.          stepVolume = 1 / param3;
  39.          fadeTimer.start();
  40.       }
  41.       
  42.       public function fadeOut(param1:SoundChannel, param2:Number, param3:Number) : *
  43.       {
  44.          isFadeIN = false;
  45.          thisChannel = param1;
  46.          fadeTimer.stop();
  47.          fadeTimer = new Timer(param2 / param3,param3);
  48.          fadeTimer.addEventListener(TimerEvent.TIMER,fadeSound);
  49.          stepVolume = -1 * thisChannel.soundTransform.volume / param3;
  50.          fadeTimer.start();
  51.       }
  52.       
  53.       internal function fadeSound(param1:TimerEvent) : *
  54.       {
  55.          if(sTransform.volume + stepVolume >= 0)
  56.          {
  57.             sTransform.volume += stepVolume;
  58.             thisChannel.soundTransform = sTransform;
  59.          }
  60.          else
  61.          {
  62.             thisChannel.stop();
  63.             fadeTimer.stop();
  64.             if(!isFadeIN)
  65.             {
  66.                thisChannel = null;
  67.             }
  68.          }
  69.       }
  70.    }
  71. }
  72.