Comunidad de diseño web y desarrollo en internet online

Sobre el tutorial del ecualizador gráfico en AC 3

Citar            
MensajeEscrito el 09 Abr 2009 05:15 pm
Hola,
Hace tiempo que buscaba la manera de hacer un ecualizador REAL (no una animación con los movimientos aleatorios) hasta que encontré este tutorial donde explicaba la manera de hacerlo. Bien, pues no tengo ni idea de como utilizarla en un proyecto.

Supongo que el codigo de la clase es todo esto:

Código :

package {
     //Importamos las clases a utilizar
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Sound;
    import flash.media.SoundChannel;  
    import flash.media.SoundTransform;
    import flash.media.SoundMixer;
    import flash.net.URLRequest;
    import flash.utils.Timer;
    import flash.utils.ByteArray;  
}

public class PlaySound extends Sprite {
        private var url:String = "MySound.mp3";//Variable para almacenar el archivo a reproducir
        private var song:SoundChannel;//Instancia de SoundChannell
   private var soundFactory:Sound;//Instancia de Sound
   private var FourierTransform:Boolean = false;//Clase que usaremos para la transformación fourier, que ya explicaremos más adelante
   private var arrayMixer:ByteArray = new ByteArray();//ByteArray, para almacenar los valores del ecualizador
   private var pan:int = 0; //Para el ajuste de la salida del audio
   private var porcentLoad:Number = 0; 

        public function PlaySound() {
      CargarSong();
        }
}

public function CargarSong():void{
       SoundMixer.stopAll();//Metodo de la clase SoundMixer, que nos permite detener todos los Sonidos que se esten reproduciendo
       soundFactory = new Sound();//Creamos una nueva instancia de la clase Sound
            var request:URLRequest = new URLRequest(url);//Hacemos la petición del mp3   
           //Luego asiganmos los Listener de la clase Sound();
       soundFactory.addEventListener(Event.COMPLETE, completeHandler);         
            soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            soundFactory.load(request);//Cargamos la canción
}

private function completeHandler(event:Event):void {
          //Una Vez que la canción se halla cargado por completo la reproducimos
      ReproducirSong();
        }
     

        private function progressHandler(event:ProgressEvent):void {
      //Mientras se carga, acutalizamos el valor de la variable porcentLoad   
      porcentLoad = Math.round((event.bytesLoaded*100)/event.bytesTotal);
        }

private function ReproducirSong():void{         
        song = soundFactory.play();//La ejecutamos
}

public function get Mixer():ByteArray{         
   //Llamamos al metodo estatico computeSpectrum de la clase SounMixer, y le pasamos los valores
   //del ByteArray donde se almacenaran, o el raw_wave o el spectro de frecuencia
   //y un valor Boolean que indica si se debe realizar la transforación Fourier o no
   //Al final retornamos el ByteArray
   SoundMixer.computeSpectrum(arrayMixer, FourierTransform);
      return arrayMixer;
   }

public function set Fourier(valor:Boolean):void{
   this.FourierTransform = valor;         
}
      
public function get Fourier():Boolean{
   return FourierTransform;
}


Si es así, al abrirlo con Flash CS4 me detecta 8 errores:

- Línea 14/1114: El atributo public sólo se puede utilizar dentro de un paquete. /public class PlaySound extends Sprite {
- Línea 28/ 1114: El atributo public sólo se puede utilizar dentro de un paquete. /public function CargarSong():void{
- Línea 38/ 1013: El atributo private sólo se puede utilizar en definiciones de propiedad de clase. /private function completeHandler(event:Event):void {
- Línea 44/ 1013: El atributo private sólo se puede utilizar en definiciones de propiedad de clase. /private function progressHandler(event:ProgressEvent):void {
- Línea 49/ 1013: El atributo private sólo se puede utilizar en definiciones de propiedad de clase. /private function ReproducirSong():void{
- Línea 53/ 1114: El atributo public sólo se puede utilizar dentro de un paquete. /public function get Mixer():ByteArray{
- Línea 62/ 1114: El atributo public sólo se puede utilizar dentro de un paquete. /1114: El atributo public sólo se puede utilizar dentro de un paquete.
- Línea 66/ 1114: El atributo public sólo se puede utilizar dentro de un paquete. /public function get Fourier():Boolean{


¿Alguien me puede explicar que debo hacer con esta clase y como solucionar los errores?

Un saludo

Por Krata

0 de clabLevel



 

Palamós

firefox
Citar            
MensajeEscrito el 13 Abr 2009 12:17 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Abr 2009 02:28 pm
Lo errores que te dan es porque te sobra un "}"
tienes

Código ActionScript :

package {
     //Importamos las clases a utilizar
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Sound;
    .....
} //<---ESTE ¿qué hace aquí?
public class PlaySound extends Sprite {
 .....
.....

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Mar 2010 04:22 am
Hola, por favor podrian explicar como se hace la parte de la pelicula .swf funciona con el archivo .as por favor??
Creo el archivo .swf con con el destino fla pero no si tengo q dibujar el equializador y como tendria que hacerlo, Gracias!

Por oscargim

10 de clabLevel



Genero:Masculino  

Argentina

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.