El cristal es un efecto de Bevel básicamente. Con este efecto lograremos que una imagen parezca hecha de vidrio o cristal. De modo que las imágenes detrás de ella se reflejen tal como lo harían en un vaso con la forma de nuestra imagen base. El truco esta en ajustar el threshold de la imagen que convertimos en "cristal". Se necesitan solamente 2 imágenes, el fondo y y el móvil con vinculación desde la biblioteca como "imagen1" e "imagen2".
Código Cristal
Da click sobre la imagen y mueve el mouse.
Coloca este código en el primer keyframe.
Código :
import flash.geom.*;
import flash.filters.*;
import flash.display.*;
img1 = BitmapData.loadBitmap("imagen1");
img2 = BitmapData.loadBitmap("imagen2");
createEmptyMovieClip("efecto",0);
sal = img2.clone();
efecto.attachBitmap(sal,0);
w = img1.width;
h = img1.height;
c=0x8080;
lim = img1.rectangle;
P0 = new Point();
Nm = new Matrix();
img1.threshold(img1,lim,P0,">",0xfae0e0,0,0xffffff);
BF = new BitmapData(w,h,false,c); xy = img1.clone();
xx = new BitmapData(w,h,true,c);yy = new BitmapData(w,h,true,c);
xy.colorTransform(lim,new ColorTransform(0,0,0,1,0,64,64,0));
xx.applyFilter(xy,lim,P0,new BevelFilter(4,45,0,0,0,1,4,4,1,4));
yy.applyFilter(xy,lim,P0,new BevelFilter(4,225,0,0,0,1,4,4,1,4));
BF.draw(xx);
BF.draw(yy,Nm,null,"add");
xx.dispose();
yy.dispose();
xy.dispose();
Mouse.hide();
dMap = new DisplacementMapFilter(BF,P0,2,2,-50,-50,"clamp");
CT = new ColorTransform(1,1,1,.4,0,0,0,0);
onMouseMove = function(){
Pt = new Point(_xmouse -w/2,_ymouse - h/2);
dMap.mapPoint = Pt;
Nm.tx = Pt.x;
Nm.ty = Pt.y;
sal.copyPixels(img2,img2.rectangle,P0);
sal.applyFilter(sal,img2.rectangle,P0,dMap);
sal.draw(img1,Nm,CT,"multiply");
}
onMouseMove();
img1.threshold(img1,lim,P0,">",0xfae0e0,0,0xffffff); Si es un PNG con transparencia y preparado anteriormente no necesitará esta línea o se puede igualar a transparente. Si es otro tipo de imagen, habrá que tantear la mejor solución en el valor del threshold.
Para más información del uso de estos efectos, puedes ver otros:
pes no me rula hermano que hago? no me rula ayudame!!!! Por:confusion_blog
Lo más probable es que realmente no vinculases la imagen. Colocar u MC, gráfico o botón en el Escenario y darle nombre de instancia es "instanciar", no es "vincular para attach". Si es eso, sigue estas instrucciones: 1) En la biblioteca pones una imagen llamada digamos "paisaje". 2) Pinchas con ratón derecho sobre su icono en la biblioteca. 3) Pinchas en vinculación en el menú que aparece. 4) En la ventana que sigue: Propiedades de vinculación marcas Exportar para ActionScript , marcará también Exportar en primer fotograma, déjalo marcado. En identificador pon imagen (ese es el nombre que buscará el script para cargarlo en attach). Deja la entrada de Clase AS2 en blanco. pulsa Aceptar. Si todo ha ido bien, en las columnas de la biblioteca verás: nombre, tipo, nº de usos, y en vinculación la palabra imagen.
Ahora debería de funcionar, tendrás que ajustar a tu gusto y necesidad los parámetros del ejemplo. Por:Teseo
las imagenes deben tener algun formato en especial? he importado a la biblioteca varias imagenes pero no me funciona he intentado varios dias Por:mago
No , las imágenes pueden ser de cualquier formato. Tienes que considerar que la imagen a "cristalizar" es la imagen1 y el fondo la imagen2. No solo hay que importarlas a la biblioteca, hay que vincularlas para actionscript como he indicado antes. Y corregir el valor del threshold si fuera necesario como también indico anteriormente. No funciona en Flash anterior al 8. Por:
hola buen dia soy algo novato del AS, me he encontrado con las siguientes clases: import flash.geom.*; import flash.filters.*; import flash.display.*;
bueno no se si sean clases o que onda, por ejemplo no me salen los trucos del 360, ni del agua, no entendi bien como esta el asunto, bueno espero me puedan ayudar y si es posible me recomienden algunos tutos, o foros que pueda ver o seguir para entender mejor los AS que manejan gracias por su atencion.
no se sipueda tener a new en el cristal me podrian ayudar? Por:sergio _blog
no se mucho de flash pero quiero que mi imagen se ajuste al esenario de flash, siempre queda pequeña la imagen ¿que hago? Por:Glenda España_blog
Teseo muchisimas gracias pq la verdad q me habia vuelto loca tratando de vincular la imagen y no tenia la menor idea!!!! Soy novata en esto asi q todo lo q leo acame sirve un monton!!!!! Otra vez gracias!!! Por:Marina_blog
hay alguna forma de implementar eso en swishmax 2???
porque las clases