Posted in

Movimientos complejos en Flash

Ejemplos de programación para ejecutar movimientos complejos mediante actionscript. Uno de ellos le da movimiento ondulatorio a un objeto mientras el otro lo hace tener un movimiento circular con efecto 2D.

// Movimiento ondulatorio

// incluimos en la escena el objeto 'esfera'
// previamente vinculado
_root.attachMovie( "esfera", "esfera", 10 );

angulo = 0; // ángulo de inicio
x1 = 0; // posición inicial en X
amplitud = 40; // amplitud de la onda
eje_y = 60; // eje vertical de la onda

onEnterFrame = function() {
    // calculamos la posición en Y según el seno
    // del ángulo, lo multiplicamos por
    // la amplitud de la onda y lo colocamos
    // en relación al eje en Y
    y1 = ( Math.sin( angulo * ( Math.PI / 180 ) ) * amplitud ) + eje_y;
    // actualizamos la posición en Y
    esfera._y = y1;
    // actualizamos la posición en X
    esfera._x = x1;
    // incrementamos la posición en X
    x1 = x1 + 6;
    // incrementamos el ángulo
    angulo = angulo + 8;
    // evaluamos si el objeto salió de la escena y,
    // si es así, restauramos los valores iniciales
    if ( x1 > 418 ) {
        x1 = 0;
        angulo = 0;
    }
}



// Movimiento Rotatorio (2d)

// incluimos el objeto previamente 'linkeado'
_root.attachMovie( "esfera", "esfera", 10 );

eje_x = 209; // asignamos el eje de la onda en X
eje_y = 55; // asignamos el eje de la onda en Y
amplitud_x = 150; // amplitud de onda horizontal
amplitud_y = 30; // amplitud de onda vertical

angulo = 0; // angulo de inicio

onEnterFrame = function() {
    // obtenemos la posición horizontal
    // según el coseno del ángulo
    // multiplicado por la amplitud de onda en X
    // y sumamos el eje
    x1=(Math.cos(angulo*(Math.PI/180))*amplitud_x)
     + eje_x;
    // obtenemos la posición vertical según
    // el seno del ángulo multiplicado por
    // la amplitud de onda y sumamos el eje
    y1=(Math.sin(angulo*(Math.PI/180))*amplitud_y)
     + eje_y;

    // asignamos la posición en X del objeto
    esfera._x = x1;
    // asignamos la posición en Y del objeto
    esfera._y = y1;

    // para lograr un efecto de distancia,
    // modificamos el tamaño del objeto
    // dependiendo de su posición en Y
    esfera._yscale = esfera._xscale = y1 + 60;

    angulo += 3;// aumentamos el ángulo
}

Descargar ejemplo

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.