Comunidad de diseño web y desarrollo en internet online

Movimiento de una bandera dinámicamente por ActionScript

Antes que nada hay que aclarar que este ejemplo solo sirve para flash mx, y no así para mx 2004, así que no renieguen.

El efecto de bandera en movimiento necesita solo un layer o capa y un solo fotograma donde va la acción.
Para empezar, importemos la imagen (que no tiene porque ser únicamente una bandera) al escenario (no a la biblioteca). También podemos optar por dibujar nuestra propia bandera en flash.

Luego importemos la imagen o nuestra propia creación a la biblioteca (simplemente arrastrándola), al hacer esto, flash nos preguntará en que la queremos converir. Elegimos la opción de clip de película o movie clip, le ponemos el nombre “foto” y el registro en la esquina superior izquierda

Una vez que la imagen está dentro de la biblioteca con su respectivo nombre de instancia”foto”, le damos click derecho y accedemos al menú “vinculación”. Ahí marcamos la opción de “exportar para Action Script” y automáticamente se marca la opción “exportar en el primer fotograma”.
Luego de esto, volvemos a nuestro escenario y borramos la imagen que habíamos importado (ya que, ya está dentro de la biblioteca como un MC).

Marcamos el primer fotograma clave de nuestro único layer y abrimos el panel de acciones.
Dentro pegamos este código:

interacciones = 30;
xo = 40;
yo = 30;
for (var i = 0; i<interacciones; i++) {
mc = attachMovie("foto", "foto"+i, 10+i*10, {_x:xo});
ancho = mc._width;
alto = mc._height;
uni = ancho/interacciones;
duplicate = _root.createEmptyMovieClip("mc"+i, 2000+i*100);
duplicate.lineStyle(0);
duplicate.beginFill(0, 100);
duplicate.moveTo(0, 0);
duplicate.lineTo(0, alto);
duplicate.lineTo(uni, alto);
duplicate.lineTo(uni, 0);
duplicate.lineTo(0, 0);
duplicate._x = xo+i*uni;
mc.setMask(duplicate);
}
this.onEnterFrame = function() {
for (var i = 0; i<interacciones; i++) {
this["mc"+i]._y = this["foto"+i]._y=yo+5*Math.sin(a += 0.2);
}
};
Sin mas ni menos, probamos nuestra película con Crl+enter.
Es muy probable, como me ocurrió a mí en principio, que solo se les vea una parte de la imagen o bandera que flamea. La solución a esto es modificar el valor de las variables “X” e “Y” dentro del código que pusimos en el panel de acciones.
Si siguieron los pasos correctamente, su imagen o bandera debería estar flameando perfectamente.
El secreto para que no aparezcan líneas blancas en la imagen es crear la imagen al tamaño que la van a usar, y luego meterla en la biblioteca ya que el Script utiliza una variable llamada SetMask() y si se modifica el tamaño luego, aparecen unas no muy estéticas líneas en la bandera o imagen.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Descargar Archivo

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate