home *** CD-ROM | disk | FTP | other *** search
/ Champak 48 / cdrom_image.iso / Games / breakawish.swf / scripts / __Packages / Library / Sound / SoundManager.as < prev   
Encoding:
Text File  |  2007-09-28  |  9.0 KB  |  269 lines

  1. class Library.Sound.SoundManager
  2. {
  3.    static var aSounds;
  4.    static var mcAttach;
  5.    static var nSoundNum;
  6.    static var aSoundCategories;
  7.    static var nMasterVolume;
  8.    static var oEnterFrameListener;
  9.    static var EVENT_SOUND_COMPLETE = 1;
  10.    static var DEFAULT_CATEGORY = "SFX";
  11.    static var MAX_SOUNDS_PLAYING = 8;
  12.    static var bInited = false;
  13.    function SoundManager()
  14.    {
  15.    }
  16.    static function doPlaySound(__sLinkage, __nVolume, __nLoop, __bUnique)
  17.    {
  18.       return Library.Sound.SoundManager.doPlaySoundInCat(Library.Sound.SoundManager.DEFAULT_CATEGORY,__sLinkage,__nVolume,__nLoop,__bUnique);
  19.    }
  20.    static function doPlaySoundInCat(__sCategoryName, __sLinkage, __nVolume, __nLoop, __bUnique)
  21.    {
  22.       Library.Sound.SoundManager.doCheckInit();
  23.       var _loc1_ = undefined;
  24.       if(Library.Sound.SoundManager.NewSoundAllowed)
  25.       {
  26.          if(__nVolume == undefined)
  27.          {
  28.             __nVolume = 100;
  29.          }
  30.          if(__nLoop == undefined)
  31.          {
  32.             __nLoop = 1;
  33.          }
  34.          if(__bUnique == undefined)
  35.          {
  36.             __bUnique = false;
  37.          }
  38.          var _loc2_ = undefined;
  39.          if(__bUnique)
  40.          {
  41.             var _loc4_ = Library.Sound.SoundManager.isSoundPlaying(__sLinkage);
  42.             if(_loc4_.bPlaying)
  43.             {
  44.                _loc2_ = false;
  45.                _loc1_ = _loc4_.oSound;
  46.             }
  47.             else
  48.             {
  49.                _loc2_ = true;
  50.             }
  51.          }
  52.          else
  53.          {
  54.             _loc2_ = true;
  55.          }
  56.          if(_loc2_)
  57.          {
  58.             Library.Sound.SoundManager.doManageCategory(__sCategoryName);
  59.             var _loc5_ = Library.Sound.SoundManager.getMCForSound();
  60.             var _loc3_ = new Sound(_loc5_);
  61.             _loc3_.attachSound(__sLinkage);
  62.             if(_loc3_.duration != undefined)
  63.             {
  64.                _loc1_ = new Library.Sound.SoundItem(_loc3_,__sLinkage,__nVolume,__nLoop,__sCategoryName,_loc5_);
  65.             }
  66.             _loc1_.doAddListener(Library.Sound.SoundManager);
  67.             Library.Sound.SoundManager.aSounds.push(_loc1_);
  68.          }
  69.       }
  70.       return _loc1_;
  71.    }
  72.    static function isSoundPlaying(__sLinkageName)
  73.    {
  74.       var _loc1_ = new Object();
  75.       _loc1_.bPlaying = false;
  76.       _loc1_.oSound = undefined;
  77.       for(var _loc3_ in Library.Sound.SoundManager.aSounds)
  78.       {
  79.          if(Library.Sound.SoundManager.aSounds[_loc3_].LinkageName == __sLinkageName)
  80.          {
  81.             _loc1_.oSound = Library.Sound.SoundManager.aSounds[_loc3_];
  82.             _loc1_.bPlaying = true;
  83.          }
  84.       }
  85.       return _loc1_;
  86.    }
  87.    static function doManageExternalSound(__oSound)
  88.    {
  89.       Library.Sound.SoundManager.doCheckInit();
  90.       Library.Sound.SoundManager.doManageCategory(__oSound.Category);
  91.       __oSound.doAddListener(Library.Sound.SoundManager);
  92.       Library.Sound.SoundManager.aSounds.push(__oSound);
  93.    }
  94.    static function getMCForSound()
  95.    {
  96.       var _loc1_ = Library.Sound.SoundManager.getNextDepth();
  97.       var _loc2_ = Library.Sound.SoundManager.mcAttach.createEmptyMovieClip("Snd" + _loc1_,_loc1_);
  98.       return _loc2_;
  99.    }
  100.    static function getNextDepth()
  101.    {
  102.       Library.Sound.SoundManager.nSoundNum = Library.Sound.SoundManager.nSoundNum + 1;
  103.       return Library.Sound.SoundManager.nSoundNum;
  104.    }
  105.    static function doInit(__mcAttach)
  106.    {
  107.       Library.Sound.SoundManager.mcAttach = __mcAttach;
  108.       if(!Library.Sound.SoundManager.bInited)
  109.       {
  110.          Library.Sound.SoundManager.bInited = true;
  111.          Library.Sound.SoundManager.nSoundNum = 0;
  112.          Library.Sound.SoundManager.aSounds = new Array();
  113.          Library.Sound.SoundManager.aSoundCategories = new Array();
  114.          Library.Sound.SoundManager.nMasterVolume = 100;
  115.          _global.mx.transitions.OnEnterFrameBeacon.init();
  116.          Library.Sound.SoundManager.oEnterFrameListener = new Object();
  117.          Library.Sound.SoundManager.oEnterFrameListener.onEnterFrame = Library.Utils.Delegate.create(Library.Sound.SoundManager,Library.Sound.SoundManager.doEnterFrame);
  118.          MovieClip.addListener(Library.Sound.SoundManager.oEnterFrameListener);
  119.       }
  120.    }
  121.    static function doEnterFrame()
  122.    {
  123.       for(var _loc1_ in Library.Sound.SoundManager.aSounds)
  124.       {
  125.          Library.Sound.SoundManager.aSounds[_loc1_].doEnterFrame();
  126.       }
  127.    }
  128.    static function setCategoryVolume(__sCategoryName, __nVol)
  129.    {
  130.       Library.Sound.SoundManager.doManageCategory(__sCategoryName);
  131.       for(var _loc3_ in Library.Sound.SoundManager.aSoundCategories)
  132.       {
  133.          if(Library.Sound.SoundManager.aSoundCategories[_loc3_].sName == __sCategoryName)
  134.          {
  135.             Library.Sound.SoundManager.aSoundCategories[_loc3_].nVolume = __nVol;
  136.          }
  137.       }
  138.       Library.Sound.SoundManager.doUpdateAllSoundsVolume();
  139.    }
  140.    static function getCategoryVolume(__sCategoryName)
  141.    {
  142.       Library.Sound.SoundManager.doManageCategory(__sCategoryName);
  143.       var _loc1_ = undefined;
  144.       for(var _loc3_ in Library.Sound.SoundManager.aSoundCategories)
  145.       {
  146.          if(Library.Sound.SoundManager.aSoundCategories[_loc3_].sName == __sCategoryName)
  147.          {
  148.             _loc1_ = Library.Sound.SoundManager.aSoundCategories[_loc3_].nVolume;
  149.          }
  150.       }
  151.       return _loc1_;
  152.    }
  153.    static function isCategoryMuted(__sCategoryName)
  154.    {
  155.       Library.Sound.SoundManager.doManageCategory(__sCategoryName);
  156.       var _loc1_ = undefined;
  157.       for(var _loc3_ in Library.Sound.SoundManager.aSoundCategories)
  158.       {
  159.          if(Library.Sound.SoundManager.aSoundCategories[_loc3_].sName == __sCategoryName)
  160.          {
  161.             _loc1_ = Library.Sound.SoundManager.aSoundCategories[_loc3_].bMuted;
  162.          }
  163.       }
  164.       return _loc1_;
  165.    }
  166.    static function doSoundEvent(__nEvent, __oSound)
  167.    {
  168.       if(__nEvent === Library.Sound.SoundManager.EVENT_SOUND_COMPLETE)
  169.       {
  170.          var _loc1_ = false;
  171.          for(var _loc3_ in Library.Sound.SoundManager.aSounds)
  172.          {
  173.             if(!_loc1_)
  174.             {
  175.                if(Library.Sound.SoundManager.aSounds[_loc3_] == __oSound)
  176.                {
  177.                   _loc1_ = true;
  178.                   delete Library.Sound.SoundManager.aSounds[_loc3_];
  179.                   Library.Sound.SoundManager.aSounds.splice(Number(_loc3_),1);
  180.                }
  181.             }
  182.          }
  183.       }
  184.    }
  185.    static function doMuteCategory(__sCategoryName)
  186.    {
  187.       for(var _loc2_ in Library.Sound.SoundManager.aSoundCategories)
  188.       {
  189.          if(Library.Sound.SoundManager.aSoundCategories[_loc2_].sName == __sCategoryName)
  190.          {
  191.             Library.Sound.SoundManager.aSoundCategories[_loc2_].bMuted = true;
  192.          }
  193.       }
  194.       Library.Sound.SoundManager.doUpdateAllSoundsVolume();
  195.    }
  196.    static function doUnMuteCategory(__sCategoryName)
  197.    {
  198.       for(var _loc2_ in Library.Sound.SoundManager.aSoundCategories)
  199.       {
  200.          if(Library.Sound.SoundManager.aSoundCategories[_loc2_].sName == __sCategoryName)
  201.          {
  202.             Library.Sound.SoundManager.aSoundCategories[_loc2_].bMuted = false;
  203.          }
  204.       }
  205.       Library.Sound.SoundManager.doUpdateAllSoundsVolume();
  206.    }
  207.    static function setMasterVolume(__nVol)
  208.    {
  209.       Library.Sound.SoundManager.nMasterVolume = __nVol;
  210.       Library.Sound.SoundManager.doUpdateAllSoundsVolume();
  211.    }
  212.    static function get NewSoundAllowed()
  213.    {
  214.       return Library.Sound.SoundManager.aSounds.length < Library.Sound.SoundManager.MAX_SOUNDS_PLAYING;
  215.    }
  216.    static function get MasterVolume()
  217.    {
  218.       return Library.Sound.SoundManager.nMasterVolume;
  219.    }
  220.    static function doRemoveListenerFromAllSounds(__oListener)
  221.    {
  222.       for(var _loc2_ in Library.Sound.SoundManager.aSounds)
  223.       {
  224.          Library.Sound.SoundManager.aSounds[_loc2_].doRemoveListener(__oListener);
  225.       }
  226.    }
  227.    static function doDestroy()
  228.    {
  229.       Library.Sound.SoundManager.doRemoveListenerFromAllSounds();
  230.       for(var _loc1_ in Library.Sound.SoundManager.aSounds)
  231.       {
  232.          Library.Sound.SoundManager.aSounds[_loc1_].doDestroy();
  233.       }
  234.    }
  235.    static function doUpdateAllSoundsVolume()
  236.    {
  237.       for(var _loc1_ in Library.Sound.SoundManager.aSounds)
  238.       {
  239.          Library.Sound.SoundManager.aSounds[_loc1_].doUpdateSound();
  240.       }
  241.    }
  242.    static function doCheckInit()
  243.    {
  244.       if(Library.Sound.SoundManager.bInited)
  245.       {
  246.       }
  247.    }
  248.    static function doManageCategory(__sCategoryName)
  249.    {
  250.       Library.Sound.SoundManager.doCheckInit();
  251.       var _loc1_ = false;
  252.       for(var _loc4_ in Library.Sound.SoundManager.aSoundCategories)
  253.       {
  254.          if(Library.Sound.SoundManager.aSoundCategories[_loc4_].sName == __sCategoryName)
  255.          {
  256.             _loc1_ = true;
  257.          }
  258.       }
  259.       if(!_loc1_)
  260.       {
  261.          var _loc3_ = new Object();
  262.          _loc3_.sName = __sCategoryName;
  263.          _loc3_.nVolume = 100;
  264.          _loc3_.bMuted = false;
  265.          Library.Sound.SoundManager.aSoundCategories.push(_loc3_);
  266.       }
  267.    }
  268. }
  269.