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
}
