Hola Amigos
Hace algun tiempo preguntaron por este efecto de agua, y ahora que ya lo0 tengo lo comparto con uds. El efecto actua sobre una imagen cualquiera, y al darle click encima, crea una onda que parece agua, para lograr el efecto ocupas poner la imagen el la libreria y vincularla con el nombre imagen, el AS va en el primer fotograma del mc
import flash.display.BitmapData;
import flash.geom.*;
import flash.filters.ConvolutionFilter;
import flash.filters.DisplacementMapFilter;
fondo = BitmapData.loadBitmap("imagen");
anc= fondo.width; alt =fondo.height;
sal = new BitmapData(anc/2,alt/2, false, 128);
sal1 = sal2 = new BitmapData(anc,alt, false,0);
ori = acum = new BitmapData(anc/2,alt/2, false,128);
Mx = new Matrix(); Mx.scale(2,2);
ola = new ConvolutionFilter(3,3,[1,1,1,1,1,1,1,1,1],9,0);
ade = new ColorTransform(0,0,0.996,1,0,0,2,0);
agua = new DisplacementMapFilter(sal2,new Point(),4,4,48,48,"ignore");
attachBitmap(sal2,0);
onMouseDown = onMouseUp = function (){pul = !pul};
onEnterFrame = function (){
if (pul){
XM = _xmouse / 2; YM = _ymouse / 2;
ori.setPixel(XM+1,YM,0); ori.setPixel(XM-1,YM,0);
ori.setPixel(XM,YM+1,0); ori.setPixel(XM,YM-1,0);
}
sal.applyFilter(ori,new Rectangle(0, 0, anc/2,alt/2),new Point(),ola);
sal.draw(sal,new Matrix(),null,"add");
sal.draw(acum,new Matrix(),null,"difference");
sal.draw(sal, new Matrix(),ade);
sal1.draw(sal,Mx,null,null,null,true);
sal2.applyFilter(fondo,new Rectangle(0,0,anc,alt), new Point(),agua);
acum = ori; ori = sal.clone();
}
Honor al que lo merece, este código fue escrito Por "Teseo" de Cristal Lab