De Circulos

Posted in: ActionScript- jul 14, 2004 5 Comments

Todos alguna vez nos hemos visto en la necesidad de crear circulo en tiempo de ejecución, es decir, mediante ActionScript.

Para ello existen varias formas, pero, ¿cual es la más correcta?, ¿la forma mas “corta”?, cada quien tiene su forma preferida, yo usaba esto:

[as]
//Parametros target, radio, posicion x y posicion y
function creaCirculo(clip, r, x, y) {
trace(clip);
clip.moveTo(x+r, y);
a = Math.tan(22.5*Math.PI/180);
for (var angulo = 45; angulo<=360; angulo += 45) {
var xFinal = r*Math.cos(angulo*Math.PI/180);
var yFinal = r*Math.sin(angulo*Math.PI/180);
var cx = xFinal+r*a*Math.cos((angulo-90)*Math.PI/180);
var cy = yFinal+r*a*Math.sin((angulo-90)*Math.PI/180);
clip.curveTo(cx+x, cy+y, xFinal+x, yFinal+y);
}
}
//creamos el MovieClip que contendra el circulo
clip = this.createEmptyMovieClip(“c”, 1);
//El formato de borde
clip.lineStyle(1, 0xFF0000, 100);
//El color de relleno
clip.beginFill(0xFF0000, 100);
//Llamamos a la funcion
creaCirculo(clip, 15, 50, 25);
[/as]

Un poco complicado, pero da resultado.

La manera mas “corta” o simple que conozco solo tiene 3 líneas de código.

[as]
//Creamos y posicionamos el target
clip = this.createEmptyMovieClip(“clip”, 5);
clip._x = 100;
clip._y = 25;
//Creamos una linea lo mas delgada posible
//en este caso 0.2, pero con un grosor grande
//para reproducir el efecto de circulo
clip.lineStyle(30, 0×000000, 100);
clip.moveTo(0, 0);
clip.lineTo(0.2, 0);
[/as]

¿Se ve alguna diferencia con el resultado final? :D

[FLASH]http://www.tmeister.net/archivos/bolas.swf, 150,50[/FLASH]

Descarga el Fla

Saludos!! 8)

  • http://luman.info luman

    Pues la verdad es que el segunod métido crea un circulo “en codiciones” y la version primera y más larga, crea un circulo con un bocado ¿? Y eso?

  • NibblesMX

    el circulo rojo, tiene una parte en la que no se dibujo la curva.

    cual metodo dibujo a cual circulo???

  • Hector (cent_gen)

    me parece que el rojo esta hecho con el primer metodo, se ve por el beginFill ;)

  • http://www.tmeister.net Tmeister

    jeje asi es….

    EL rojo se crea con el primer metodo… :D

  • vicman

    Se ve mas perfecto el rojo, me imagino k fue creado con el primer metodo