Con respecto a los efectos de agua como lago y ondas, ( el famoso lake effect) que solicitais en el post os añado este código que es el "simple-base" para comenzar con ese tipo de efectos en flash 8 Usa lo mínimo para esos efectos y como vereís en los ejemplos, las variaciones de sus parámetros producen diversidad de ellos. Se basan en el desplazamiento de mapa de bits y en el PerlinNoise de la clase Bitmap en flash 8. A este "experimento base" se le pueden añadir funciones repetitivas y/o acumulativas del metodo PerlinNoise para crear profundidad, giro, etc... Solo hay que vincular una imagen con "imagen" desde la biblioteca y listo:
CODIGO 1: Lago
Código :
import flash.display.BitmapData;
import flash.geom.*;
import flash.filters.*;
img= BitmapData.loadBitmap("imagen");
attachBitmap(img,1); createEmptyMovieClip("efecto",0);
efecto.attachBitmap(img,0);
efecto._y=2*efecto._height+58;efecto._yscale=-130;
olas = ola = new BitmapData(efecto._width,efecto._height);
offset = new Point(4,6);
desMap=new DisplacementMapFilter
(olas,new Point(1,10),null,1,0,-140,"ignore");
onEnterFrame=function(){
offset.y -= .6;
ola.perlinNoise(0,6,1,0,true,true,1,true,[offset]);
efecto.filters=[desMap];
}
Ahora con unos pequeños cambios ese código base puede hacer otras cosas:
CODIGO 2: Fuego
Código :
import flash.display.BitmapData;
import flash.geom.*;
import flash.filters.*;
img= BitmapData.loadBitmap("imagen");
createEmptyMovieClip("efecto",0);
efecto.attachBitmap(img,0);
efecto._yscale=190; efecto._xscale=160;
olas = ola = new BitmapData(efecto._width,efecto._height);
offset = new Point(0,0);
desMap=new DisplacementMapFilter
(olas,new Point(50,40),1,1,100,-100,"warp");
onEnterFrame=function(){
offset.y += 10; //offset.x -= 9.8;
ola.perlinNoise(6,18,2,0,true,true,1,true,[offset]);
efecto.filters=[desMap];
}
Seguimos jugando con los parámetros: CODIGO 3 : rio
Código :
import flash.display.BitmapData;
import flash.geom.*;
import flash.filters.*;
img= BitmapData.loadBitmap("imagenV");
attachBitmap(img,1); createEmptyMovieClip("efecto",0);
efecto.attachBitmap(img,0);
efecto._y=2*efecto._height; efecto._yscale=-100;
olas = ola = new BitmapData(efecto._width,efecto._height);
offset = new Point();
desMap=new DisplacementMapFilter(olas,new Point(0,10),1,1,50,50,"clamp");
onEnterFrame=function(){
offset.y -= .3; offset.x -= .9;
ola.perlinNoise(11,5,1,0,true,true,1,true,[offset]);
efecto.filters=[desMap];
}
Asimismo se pueden crear efectos de cascada de agua, ondeado de banderas, nubes, humo,agua de lluvia, nieve etc...
Tener en cuenta que este código es el arranque simple para este tipo de efectos, perfeccionarlo o variarlo a vuestro gusto.
info sacada de: http://foros.cristalab.com/como-puedo-lograr-hacer-un-efecto-de-agua-t22148/