Paginas Amigas

FX Efecto reflejo de agua PDF Imprimir E-mail
1
Escrito por Fernando   
Miércoles, 22 de Abril de 2009 12:56


 Con esta función vamos a crear reflejos de agua de forma rápida y sencilla

Primero que nada tenemos que tener en cuenta que esta función necesita previamente un objeto que posea mapa de bit como por ejemplo las áreas de texto ,los Bitmap y por supuesto los movieclip en pocas palabras lo que el flash muestre en pantalla



Código :AS2
 
function FxReflejoAgua(_MC:Object, Espacio:Number, Amplitud:Number, Int:Number, Alfa:Number, Frente:Boolean):Void {
	import flash.display.BitmapData;
	import flash.geom.*;
	import flash.filters.*;
	this.createEmptyMovieClip("FXAgua",this.getNextHighestDepth());
	var img = new BitmapData(_MC._width, _MC._height, true, 0);
	img.draw(_MC);
	var hh:MovieClip = new hh.getDepth();
	FXAgua.createEmptyMovieClip("efecto",FXAgua.getNextHighestDepth());
	FXAgua._y = _MC._y;
	FXAgua._x = _MC._x;
	FXAgua.efecto.attachBitmap(img,0);
	FXAgua.efecto._yscale = -(100+Amplitud);
 
	FXAgua.efecto._y = _MC._height+((_MC._height+Amplitud)+Espacio);
 
 
	FXAgua.olas = FXAgua.ola=new BitmapData(_MC._width, _MC._height, true, 0);
	FXAgua.offsetx = new Point(4, 6);
	FXAgua.desMap = new DisplacementMapFilter(FXAgua.olas, new Point(1, 10), null, 1, 0, -(40+Int), "ignore");
	FXAgua.onEnterFrame = function() {
		FXAgua.offsetx.y -= .6;
		FXAgua.ola.perlinNoise(100,6,1,20,true,true,1,true,[FXAgua.offsetx]);
		FXAgua.efecto.filters = [FXAgua.desMap];
	};
	if (Frente) {
		FXAgua.swapDepths(_MC);
	}
	FXAgua._alpha = Alfa;
}
 
Analizado en 0.018 segundos ha 60.90 KB/s, GeSHi 1.0.8.2-- CFX.GHCode Programado Por Crea-Flash.com



2- Para poder activar esta función lo vamos hacer de la siguiente manera, primero colocamos en el escenario un movieclip y le pondremos nombre de instance MC, es muy importante que el contenido del mc no tenga posiciones menores a 0, es decir si convertimos una imagen en mc esta tiene que estar en posición de X >=0 y posición de Y>=0 ,esto es porque la función toma como referencia el ancho y alto del mc pero no puede acceder a sus coordenadas dentro, si existe un elemento dentro del mc que se encuentre a menos 0 en X o Y esta se recortada



Código :AS2
 
FxReflejoAgua(MC,0,0,0,100,true);
 
Analizado en 0.012 segundos ha 2.94 KB/s, GeSHi 1.0.8.2-- CFX.GHCode Programado Por Crea-Flash.com



function FxAgua(_MC:Object, Espacio:Number, Amplitud:Number, Int:Number,Alfa:Number,Frente:Boolean)



_MC:Object =
Objeto que se va a reflejar admite desde Movie clip a TexField (caja de texto)

Espacio:Number = separación vertical de la imagen esto determina la distancia en que el objeto tiene su reflejo

Amplitud:Number = aumenta o disminuye el valor de escala del reflejo, si utiliza un valor por debajo de 0 el reflejo se separa de la imagen para evitar esto tendría que modificar los valores de Espacio para poder compensar con la modificación de escala

Int:Number= incremente el valor de ruido del agua cuanto mas alto el numero mas distorsionada se vera el reflejo

Alfa:Number =valores alpha del reflejo

Frente:Boolean = si es true el reflejo se mantiene por detrás del Objeto reflejado si es false el reflejo pasa al frente de objeto reflejado

 

Nota: Esta funcion no es compatible con las verciones mx del flash
archivo de descarga

 


Cualquier duda utilizar el foro

Última actualización el Miércoles, 22 de Abril de 2009 13:09