Recursos.as

  1. /*
  2.   Recursos.as — Precarga de los sonidos — ProInf.net 2010
  3.  
  4.   Gestión de los recursos como los sonidos
  5. */
  6. package
  7. {
  8. import flash.display.*;
  9. import flash.events.*;
  10. import flash.media.*;
  11. import flash.net.URLRequest;
  12.  
  13. public class Recursos
  14. {
  15. // CONFIGURACIÓN ------------------------------
  16.  
  17. private static const SUBDIR = "sounds/";
  18. private static var mp3s:Array = ["musicbox.mp3", "crystal.mp3", "glass.mp3", "angstrom.mp3", "angstrom2.mp3", "angstrom3.mp3", "angstrom4.mp3"];
  19.  
  20. // PROPIEDADES --------------------------------
  21.  
  22. private static var iniciado:Boolean = false;
  23. private static var sonidos:Array;
  24. private static var raiz:String = "";
  25.  
  26. // INTERFAZ -----------------------------------
  27.  
  28. public static function reproducir_azar():void {
  29. reproducir (sonido_azar());
  30. }
  31.  
  32. public static function reproducir_suave():void {
  33. reproducir (sonido_suave());
  34. }
  35.  
  36. public static function iniciar(url_swf:String=null) {
  37. // El parámetro url_swf se obtiene de loaderInfo.url de un clip
  38. if (!iniciado) {
  39. iniciado = true;
  40.  
  41. if (url_swf != null) {
  42. raiz = url_swf.substr(0, url_swf.lastIndexOf("/")+1);
  43. trace("raiz: "+raiz);
  44. }
  45.  
  46. sonidos = new Array();
  47. for each (var mp3:String in mp3s) {
  48. var url:String = raiz + SUBDIR + mp3;
  49. var sonido:Sound = new Sound(new URLRequest(url));
  50. sonidos.push(sonido);
  51. }
  52. }
  53. }
  54.  
  55. // PRIVADO ------------------------------------
  56.  
  57. private static function sonido_azar():Sound {
  58. iniciar();
  59. var indice:int = Aleatorio.entero(1, sonidos.length-1);
  60. return sonidos[indice];
  61. }
  62. private static function sonido_suave():Sound {
  63. iniciar();
  64. return sonidos[0];
  65. }
  66. private static function reproducir(sonido:Sound):void {
  67. // En el momento de reproducir un sonido podemos obtener su canal.
  68. // Al canal le aplicamos nuestra transformada de sonido
  69. try {
  70. var canal:SoundChannel = sonido.play();
  71. canal.soundTransform = Volumen.soundTransform;
  72. }
  73. catch (e:Error) { /*trace (e);*/ }
  74. }
  75.  
  76. } // class Recursos
  77.  
  78. } // package

Proinf.net