Dec 27
Emulando un ecualizador con ActionScript
AS2. Autor: xleon Add comments
Aquà os paso una clase que hice a partir de un script muy sencillo que me pasó un amigo. Es una clase con la que podéis hacer el tÃpico gráfico animado que emula en ecualizador, y que suele ir junto a los reproductores de sonido en Flash. Se genera con una sola lÃnea de código, sin necesidad de colocar nada en pantalla. Además lo podéis personalizar a vuestro gusto pasándole parámetros.Haz click para activar/desactivar
A continuación el código necesario para implementarlo:
Para usarlo:
import net.xleon.graficos.Ecualizador; var clip:MovieClip = this.createEmptyMovieClip("ec0", 0); clip._x = 20; clip._y = 40; var ec0:Ecualizador = new Ecualizador(clip, 6, 1.5, 3.5, true, 15, null, 0xffffff);
La clase:
/** * ... * @author Diego Ponce de Leon * @version 0.1 */ class net.xleon.graficos.Ecualizador { private var scope:MovieClip; private var t:Number = 0; private var nBarras:Number; private var separacion:Number; private var __alturaMax:Number = 20; private var __alturaMin:Number; private var borderColor:Number = null; private var barraColor:Number = 0x222222; private var anchoBarra:Number = 5; public function Ecualizador(_scope:MovieClip, _nBarras:Number, _anchoBarra:Number, _separacion:Number ,_start:Boolean, _alturaMax:Number, _borderColor:Number, _barraColor:Number) { scope = _scope; nBarras = _nBarras; separacion = _separacion; alturaMax = _alturaMax; alturaMin = alturaMax-10; if(_borderColor) borderColor = _borderColor; if(_barraColor) barraColor = _barraColor; if(_anchoBarra) anchoBarra = _anchoBarra; if(_start) start(); } public function set alturaMin(altura:Number){ if(altura > 0)__alturaMin = altura; else __alturaMin = 0; } public function get alturaMin():Number{ return __alturaMin; } public function set alturaMax(altura:Number){ if(altura > 0)__alturaMax = altura; else __alturaMax = 0; } public function get alturaMax():Number{ return __alturaMax; } public function start():Void{ trace(alturaMax+","+alturaMin); trace("Ecualizador.start()"); scope._visible = true; var ref:Object = this; scope.onEnterFrame = function(){ ref.t++; var barra:MovieClip = ref.scope.createEmptyMovieClip("barra" + ref.t, ref.t); if(ref.borderColor)barra.lineStyle(1, ref.borderColor, 20); for (var i = 0; i < ref.nBarras; i++) { var altura:Number = ref.aleatorioEntre(ref.alturaMin, ref.alturaMax); //int(Math.random() * 10 + 20); barra.beginFill(ref.barraColor, 30); barra.moveTo((i * ref.separacion), 0); barra.lineTo((i * ref.separacion), -altura); barra.lineTo((ref.anchoBarra + i * ref.separacion), -altura); barra.lineTo((ref.anchoBarra + i * ref.separacion), 0); barra.lineTo((i * ref.separacion), 0); barra.endFill(); } if (ref.t == 3) ref.t = 0; } } public function stop():Void{ var alMax:Number = alturaMax; var alMin:Number = alturaMin; var esclavo:MovieClip = scope.createEmptyMovieClip("esc", -1000); var ref:Object = this; esclavo.onEnterFrame = function(){ ref.alturaMax -= 1; ref.alturaMin -= 1; if(ref.alturaMax == 0 && ref.alturaMin == 0) { delete this.onEnterFrame; ref.scope.onEnterFrame = null; ref.scope._visible = false; ref.alturaMax = alMax; ref.alturaMin = alMin; } } } private function aleatorioEntre(min:Number, max:Number):Number { return Math.floor(Math.random() * (max - min + 1)) + min; } }
Archivos de ejemplo:

March 4th, 2008 at 1:04 pm
gracias, ahora quiero ver si me lo puedo pasar y probar…que bueno!!! me alegraste el dia
March 11th, 2008 at 12:27 am
Hola que tal, muy bueno tu desarrollo, y me gustaria poder implementarlo, sin embargo y ruego disculpes mi ignorancia, pero podrias indicarme la forma de ponerlo en flash, soy principiante en el, gracias
March 12th, 2008 at 7:02 pm
Hola Saul, en cuanto pueda te cuelgo un .fla con un ejemplo.
Un saludo
March 16th, 2008 at 2:29 pm
Hola Saul, ya te puse los archivos. Un saludo
March 16th, 2008 at 2:30 pm
Tienes que poner la carpeta “net” en el mismo directorio donde tengas en .fla, para que todo funcione correctamente.
March 31st, 2008 at 8:24 pm
hola estoy probando con tu ecualizador, pero no logro que se vea me esta faltando saber la medida en pixeles, de todos los ecualizadores me gusta el de color lila solamente pero no se como hacerlo..gracias
April 1st, 2008 at 1:16 pm
Hola David, has bajado el zip con el ejemplo? ahà creo que está el ejemplo lila, pero de todas formas solo tienes que jugar con los parámetros que se le pasan al constructor, donde puedes cambiar ancho de la barra, borde de la barra, número de barritas, etc. Mira la clase del ejemplo y entenderás para qué sirve para parámetro.
[as]var ec0:Ecualizador = new Ecualizador(clip, 6, 1.5, 3.5, true, 15, null, 0xffffff);[/as]
Un saludo
June 17th, 2008 at 2:39 am
hola nose puede descargar el EcualizadorActionScript.zip por favor si alguienme lo peude pasar se ve interesante gracias espero vuestra ayudaa
June 28th, 2008 at 11:18 pm
Hola, no se que le pasará a la descarga, yo lo descargo sin problemas. De todas formas, con los ejemplos de código tienes todo lo que necesitas. Un saludo