Google Web after-hours

Contador en flash JSFL Traductor

Dani www.mardelcoral.com ha escrito este útil script para la distribución de objetos en el espacio basado en los ángulos.

//nº de opciones que queremos desplegar
opc = 9;
//el angulo a partir del cual queremos desplegar la selección
angulo0 = 0;
//cálculo del ángulo asociado a cada opción
angulo = 360/opc;
for (i=0; i<opc; i++) {
	duplicateMovieClip(clip, "clip"+i, i);
	//incrementamos el angulo para cada opción
	elAngulo = angulo0+(angulo*i);
	//convertimos el ángulo a radianes
	rad = (Math.PI*2/360)*elAngulo;
	//aplicamos las leyes de la trigonometria
	eval("clip"+i)._x = Math.round(clip._x+(100*Math.cos(rad)));
	eval("clip"+i)._y = Math.round(clip._y+(100*Math.sin(rad)));
}
}

Descargar ejemplo » (811 hits)

The URI to TrackBack this entry is: http://www.after-hours.org/blog/archives/2005/02/25/distribucion-de-objetos-en-el-escenario-basado-en-el-calculo-de-angulos/trackback/

2 Responses to 'Distribución de objetos en el escenario basado en el cálculo de ángulos'

  1. dani Says:

    Una cosita… el 100 que aparece en
    “eval("clip"+i)._x = Math.round(clip._x+(100*Math.cos(rad)));
    eval("clip"+i)._y = Math.round(clip._y+(100*Math.sin(rad)));”

    lo podéis sustituir por la variable “radio” y asignarle el valor que queráis… esa será la distancia equidistante de las opciones al centro de referencia. El script modificado quedaría de la siguiente manera:

    //nº de opciones que queremos desplegar
    opc = 9;
    //el angulo a partir del cual queremos desplegar la selección
    angulo0 = 0;
    //cálculo del ángulo asociado a cada opción
    angulo = 360/opc;
    //distancia de las opciones al centro
    radio=100;
    for (i=0; i

  2. dondiegote Says:

    mola el code “ :mrgreen:

    jugando:

    prof = 10;
    //nº de opciones que queremos desplegar
    opc = 100;
    //el angulo a partir del cual queremos desplegar la selección
    angulo0 = 0;
    //cálculo del ángulo asociado a cada opción
    angulo = 360/opc;
    createEmptyMovieClip("eF", prof);
    i=0;
    eF.onEnterFrame = function() {
    this.createEmptyMovieClip("cir"+i, prof++);
    CreaCir(this["cir"+i]);
    //incrementamos el angulo para cada opción
    elAngulo = angulo0+(angulo*i);
    //convertimos el ángulo a radianes
    rad = (Math.PI*2/360)*elAngulo;
    //aplicamos las leyes de la trigonometria
    this["cir"+i]._x = Math.round(200+(3*i*Math.cos(rad)));
    this["cir"+i]._y = Math.round(275+(3*i*Math.sin(rad)));
    i++;
    if(i>=opc)delete this.onEnterFrame;
    }
    function CreaCir(ke) {
    with(ke) {
    //lineStyle(0, 0x212121, 100);
    beginFill(0x212121);
    moveTo(2, 2);
    curveTo(3, 2, 3, 1);
    curveTo(3, 0, 2, 0);
    curveTo(1, 0, 1, 1);
    curveTo(1, 2, 2, 2);
    endFill();
    }
    }