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, 0x000000, 100);
clip.moveTo(0, 0);
clip.lineTo(0.2, 0);
[/as]
¿Se ve alguna diferencia con el resultado final? 😀
[FLASH]http://www.tmeister.dev/archivos/bolas.swf, 150,50[/FLASH]
Saludos!! 8)
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?
el circulo rojo, tiene una parte en la que no se dibujo la curva.
cual metodo dibujo a cual circulo???
me parece que el rojo esta hecho con el primer metodo, se ve por el beginFill 😉
jeje asi es….
EL rojo se crea con el primer metodo… 😀
Se ve mas perfecto el rojo, me imagino k fue creado con el primer metodo