Exportar Jpg a partir de un SWF con Flash y Php Warning: Cannot modify header information - headers already sent by …
Dec 27

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:

EcualizadorActionScript.zip

9 Responses to “Emulando un ecualizador con ActionScript”

  1. martin Says:

    gracias, ahora quiero ver si me lo puedo pasar y probar…que bueno!!! me alegraste el dia

  2. Saul Says:

    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

  3. xleon Says:

    Hola Saul, en cuanto pueda te cuelgo un .fla con un ejemplo.

    Un saludo

  4. xleon Says:

    Hola Saul, ya te puse los archivos. Un saludo

  5. xleon Says:

    Tienes que poner la carpeta “net” en el mismo directorio donde tengas en .fla, para que todo funcione correctamente.

  6. david Says:

    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

  7. xleon Says:

    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

  8. joaquin Says:

    hola nose puede descargar el EcualizadorActionScript.zip por favor si alguienme lo peude pasar se ve interesante gracias espero vuestra ayudaa

  9. xleon Says:

    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

Leave a Reply