home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / pup_idol.swf / scripts / uk / kerb / utils / sound / SoundManager.as < prev   
Encoding:
Text File  |  2008-08-07  |  2.3 KB  |  89 lines

  1. package uk.kerb.utils.sound
  2. {
  3.    import flash.media.SoundMixer;
  4.    import flash.media.SoundTransform;
  5.    
  6.    public class SoundManager
  7.    {
  8.       
  9.       private static var allowInstantiation:Boolean = false;
  10.       
  11.       private static var instance:SoundManager = null;
  12.        
  13.       
  14.       private var sounds:Array;
  15.       
  16.       private var preMuteVolume:Number = 1;
  17.       
  18.       private var muteState:Boolean = false;
  19.       
  20.       private var masterVolume:Number = 1;
  21.       
  22.       public function SoundManager()
  23.       {
  24.          sounds = new Array();
  25.          super();
  26.          if(!allowInstantiation || instance != null)
  27.          {
  28.             throw new Error("SoundManager is a singleton - use SoundManager.getInstance()");
  29.          }
  30.       }
  31.       
  32.       public static function getInstance() : SoundManager
  33.       {
  34.          if(instance == null)
  35.          {
  36.             allowInstantiation = true;
  37.             instance = new SoundManager();
  38.             allowInstantiation = false;
  39.          }
  40.          return instance;
  41.       }
  42.       
  43.       public function stopAllSounds() : void
  44.       {
  45.          SoundMixer.stopAll();
  46.       }
  47.       
  48.       public function getSoundFromID(param1:String) : ExtendedSound
  49.       {
  50.          return sounds[param1];
  51.       }
  52.       
  53.       public function get muted() : Boolean
  54.       {
  55.          return muteState;
  56.       }
  57.       
  58.       public function registerSound(param1:ExtendedSound, param2:String) : void
  59.       {
  60.          if(sounds[param2] != null)
  61.          {
  62.             throw new Error("ID conflict: A sound with the id [" + param2 + "] already exists in SoundManager\'s sound list.");
  63.          }
  64.          sounds[param2] = param1;
  65.       }
  66.       
  67.       public function unmute() : void
  68.       {
  69.          muteState = false;
  70.          setMasterVolume(preMuteVolume);
  71.       }
  72.       
  73.       public function mute() : void
  74.       {
  75.          muteState = true;
  76.          preMuteVolume = masterVolume;
  77.          setMasterVolume(0);
  78.       }
  79.       
  80.       public function setMasterVolume(param1:Number) : void
  81.       {
  82.          masterVolume = Math.max(0,Math.min(1,param1));
  83.          var _loc2_:SoundTransform = SoundMixer.soundTransform;
  84.          _loc2_.volume = masterVolume;
  85.          SoundMixer.soundTransform = _loc2_;
  86.       }
  87.    }
  88. }
  89.