| FX Efecto reflejo de agua |
|
|
|
| Escrito por Fernando |
| Miércoles, 22 de Abril de 2009 12:56 |
|
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
|
| Última actualización el Miércoles, 22 de Abril de 2009 13:09 |



