Cristalab

Gráfico estadístico por variables definidas con Actionscript

Por: Blackdragon + 24.11.2007

En muchas oportunidades a la hora de desarrollar un software nos piden que lleven datos estadísticos o gráficas, en este tutorial lo que pretendo dar a conocer un procedimiento de este tipo por medio de ActionScript, Flash y sin base de datos, el procedimiento que se debe realizar es el siguiente:

Primero que todo, creamos un documento nuevo en Flash de 400 x 200 píxeles.



Después de tener nuestra área de trabajo ya definida, procedemos a crear un rectángulo de 196.9 de ancho por 13 de alto, la posición del mismo es indiferente. Luego lo convertimos en símbolo, en mi caso lo llamaré barra, e insertamos dos instancias más del mismo, ubicándolas una debajo de la otra, quedando de la siguiente manera:



Las líneas que llevan las coloqué adicionales. Ahora, seleccionamos una por una las barras que insertamos, le cambiamos los nombres de instancia por barra1, barra2 y barra3 respectivamente, y luego le cambiamos el color. Para ello primero se selecciona la barra a colorear y luego en la parte inferior, en el cuadro propiedades, en el combo de selección color seleccionamos la opción Tinta y de ahí escogemos los colores que nos parezcan adecuados.



Después de tener todo coloreado, insertamos tres textos dinámicos al frente de cada una de las barras y les escribimos el número cero ( 0 ), los nombres de instancia para ellos son: text_a, text_b y text_c. Además de eso insertamos tres TextInput, en los cuales se van a escribir los valores a graficar y un botón para mostrar el resultado final.

Los TextInput tendrán como nombres de instancia: var_a, var_b y var_c, respectivamente; y el nombre de instancia para el botón le coloqué btn_ok, quedando de la siguiente manera hasta ahora:



Ahora viene lo más interesante que es el código como tal. Vamos a programar en el primer fotograma de nuestra capa actual (Ojo, no es en el botón, es en el primer fotograma), y ahí insertamos el siguiente código:

Código :

text_a.text = 0;
text_b.text = 0;
text_c.text = 0;

barra1._xscale = 1;
barra2._xscale = 1;
barra3._xscale = 1;

btn_ok.onRelease = function(){
   var num1:Number = Number(var_a.text);
   var num2:Number = Number(var_b.text);
   var num3:Number = Number(var_c.text);
   var mayor:Number = num1;
   if(num2 > mayor) mayor = num2;
   if(num3 > mayor) mayor = num3;

   text_a.text = num1;
   text_b.text = num2;
   text_c.text = num3;

   barra1._xscale = (num1*100)/mayor;
   barra2._xscale = (num2*100)/mayor;
   barra3._xscale = (num3*100)/mayor;

   if (var_a.text == "" || var_b.text == "" || var_c.text == ""){
      trace("No pueden haber campos vacíos")
   }

}

¡Y listo!, después de esto lo único que faltaría es oprimir Ctrl + F9 y probar lo que se ha hecho hasta el momento. Una muestra de como funciona es la siguiente imágen:



Espero les halla sido de gran utilidad y cualquier duda no olviden hacerla. Mucha suerte y éxitos a todos.

Etiquetas flash actionscript

Comentarios | Enviar un comentario
podrias poner el SWF para verlas funcionando Bien
Por: penHolder
SWAT Blackdragon: Mándame el archivo .swf de ejemplo al email y te editaré el tip. Debería matarte por colocar un pantallazo del código... hazme un copy&paste del código... lo editaré también. SWAT
Por: Zguillez
Lo haré Zguillez, sorry por lo del código, pero es que este tip lo había mandado hace uff para una especie de tuto... y de tanto esperar decidí colocarlo como tip y entonces ahi se fue la imagen.... Que pena... U_U
Por: Blackdragon
Menos mal que fue reparado... Asi se ve mucho mejor !!!...
Riendo
Por: M@U
Y esto no quedaria mejor con Flex/charts?
Por: BiliJou_blog
yo tenía un gráficador en flash que hacía barritas en base a un XML Sonrisa , haber si luego lo pongo aca miau
Por: master_of_puppetz

Zguillez :

....Debería matarte por colocar un pantallazo del código...

jjajajajajjajaj aun así, está simpático el Tip miau muy bien Guiño
Por: eldervaz

Blackdragon :


¡Y listo!, después de esto lo único que faltaría es oprimir Ctrl + F9 y probar lo que se ha hecho hasta el momento. Una muestra de como funciona es la siguiente imágen:

miau Ctrl-F9 me hacen recordar viejos tiempos en C++, muy buen tip, gracias por el aporte, es más quitando las cajas y el botón, asignando los valores directos a las variables quedaría muy bien Guiño
Por: flashreloco

Código :

btn_ok.onRelease = function(Void):Void{
   if(!var_a.length || !var_b.length || !var_c.length){
      trace ("No pueden haber campos vacíos");
   }else{
      var num1:Number = var_a.text = parseInt(var_a.text);
      var num2:Number = var_b.text = parseInt(var_b.text);
      var num3:Number = var_c.text = parseInt(var_c.text);
      var mayor:Number = Math.max(num1, Math.max(num2, num3));
      barra1._xscale = (num1 * 100)/mayor;
      barra2._xscale = (num2 * 100)/mayor;
      barra3._xscale = (num3 * 100)/mayor;
   }
   
}

Por: Ni se quien soy_blog
hay un tremendo error con esto, despues de poner 3 numeros aleatorios y darle OK puse 0-0-0 y OK y no bajaron las barras, despues puse 3 numeros aleatorios mas y las barras siguen subiendo, luego puse 1-1-1-OK y las barras se llenaron por completo, supongo q habra q reiniciarlo cada vez q quieres cambiar la grafika ,AAAAFF, y falto el boton reset.

Para q vean q no soy exigente miau
Por: paberu_blog
La idea del botón de reset es buena... para la próxima será.... Guiño
Por: Blackdragon
NOOOB !! Riendo
Por: HAHA_blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.