En esta colección voy desarrollando algunas de las muchas posibilidades que esta clase brinda a programadores y diseñadores. Efectos de agua, fuego, nubes, arroyos, cascadas, banderas, rayos, lluvia, lagos, nieve, humo, relieves, deformaciones, movimientos, etc pueden crearse y ser simulados de manera muy realista con unas pocas lineas de código. El primero será:
Efecto Relieve:
Esta sería nuestra imagen de origen:
Y este es el resultado. Pasa el mouse por encima de la imagen para ver el efecto de relieve en acción.
En una nueva película de Flash colocamos el siguiente código:
Código :
import flash.display.*; import flash.geom.*; import flash.filters.*; _quality = "low"; pt = new Point(); Mouse.hide(); img = BitmapData.loadBitmap("imagen"); rc = img.rectangle; img.width>img.height ? h=img.width : h=img.height; h = Math.round(h); img2 = img.clone(); temp = img.clone(); img.colorTransform(rc, new ColorTransform(1, 1, 1, 0, 127, 127, 127, 255)); img2.colorTransform(rc, new ColorTransform(1, 1, 1, 1, 0, 0, 0, 255)); temp.perlinNoise(20, 20, 2, 0, true, true, 15, false, null); img.merge(temp, rc, pt, 80, 80, 80, 255); temp.dispose(); img.applyFilter(img, rc, pt, new BlurFilter(4, 4, 1)); mc1 = this.createEmptyMovieClip("mc1", 1); mc1.attachBitmap(img2, 2); marco = this.createEmptyMovieClip("marco", 2); marco.blendMode = 14; mc2 = marco.createEmptyMovieClip("mc2", 1); cl = [0xffffff, 0xe7cf07, 0]; al = [40, 60, 100]; rt = [0, 37, 255]; matrix = new Matrix(); matrix.createGradientBox(h, h, 0, h/2, h/2); mc2.beginGradientFill("radial", cl, al, rt, matrix); mc2.moveTo(0, 0); mc2.lineTo(0, 2*h); mc2.lineTo(2*h, 2*h); mc2.lineTo(2*h, 0); mc2.lineTo(0, 0); mc2.endFill(); sal = temp=img.clone(); mx1 = [0, 0, 0, -1, 0, 1, 0, 0, 0]; mx2 = [0, -1, 0, 0, 0, 0, 0, 1, 0]; temp.applyFilter(img, rc, pt, new ConvolutionFilter(3, 3, mx1, 1, 127)); sal.copyPixels(temp, rc, pt); temp = img.clone(); temp.applyFilter(img, rc, pt, new ConvolutionFilter(3, 3, mx2, 1, 127)); sal.copyChannel(temp, rc, pt, 1, 2); temp.dispose(); dMap = new DisplacementMapFilter(sal, pt, 1, 2, -300, -300); onMouseMove = function () { x = h-_xmouse; y = h-_ymouse; dMap.mapPoint = new Point(x, y); mc2.filters = [dMap]; mc2._x = -x; mc2._y = -y; updateAfterEvent(); }; onMouseMove();
Simplemente una imagen con nombre "imagen" para vinculación en la biblioteca y listo.
Utiliza varias transformaciones de la imagen para hacerlo y, variando algunos parámetros, cambiamos el foco, el color, la textura del fondo, etc...
Explico un poco la manipulación de parámetros más importantes que se pueden tocar:
temp.perlinNoise(20,20,2,0,true,true,15,false,null);
Cambian la textura de fondo. Valores pequeños, más rugosa. Valores descompensados 10,300 tipo cortinas u olas.
img.applyFilter(img, rc, pt, new BlurFilter(4, 4, 1));
El Blur es el que crea la profundidad, si lo aumentamos mucho el relieve será más inclinado el valor que ahora está a 1(calidad) si se incrementa suaviza los contornos. Para texturas tipo plástico a tipo acero.
cl = [0xffffff,0xe7cf07,0]; al = [40,60,100]; rt = [0,37,255];
Son el color, fuerza y forma de degradado del foco de luz. Son los parámetros que más hacen variar el efecto. Se puede crear más complejo el array y/o añadir radiados, halos, etc.
dMap = new DisplacementMapFilter(sal,pt,1,2,-300,-300);
Afectan a la profundidad del relieve, valores invertidos (positivos) hacen hueco en lugar de resalte.
Otros parámetros evidentemente también afectan la composición, pero estos son los más importantes. Aunque funciona con fondos claros u oscuros en algunos casos "especiales" habrá que retocar las transformaciones de color.
Si se desea usar un MC instanciado (en el ejemplo con nombre "logo") en lugar de una imagen cambiar esta linea:
Código :
img = BitmapData.loadBitmap("imagen"); rc= img.rectangle;
Por estas dos lineas:
Código :
img = new BitmapData(400,400,true,0); rc=img.rectangle; img.draw(logo); logo._visible=false;
Tanto este como el resto de efectos los voy desarrollando y atendiendo dentro del foro Flash dentro de este post:
¿Como puedo lograr hacer un efecto de agua?
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por HernanRivas el 14 de Enero de 2007
Te entiendo, pero hace más difícil entender el código on-line. Ésa es la única desventaja
Por Zah el 14 de Enero de 2007
pd: Ya era hora
Por el 14 de Enero de 2007
Ejemplo: plastico y metal
Por XKlibur el 14 de Enero de 2007
Por Freddie el 15 de Enero de 2007
Por [email protected] el 15 de Enero de 2007
Por Sisco el 15 de Enero de 2007
Por Teseo el 15 de Enero de 2007
Pongamos el ejemplo de un fondo de web con textura, sin más. No ocultamos el mouse y hacemos el haz de foco muy amplio, casi con iluminación diáfana. El script permitirá navegar por el site normalmente y con un "pequeño efecto" en el fondo iluminado y cambiante de sombras difusas muy agradable tipo papel, metal, plástico, burbuja, etc.
Otra posiblidad: En una galeria de imágenes o similares como "cristal de la foto" que cambia con la luz y el movimiento del objeto. Entonces manejamos la luz no como unida al mouse sino mediante otro algoritmo. No modificamos la imagen, solo una textura por encima de la misma con cierta transparencia.
En la serie que estoy desarrollando, tendrá un uso distinto: Con algunas variaciones del código efectuaremos la iluminación realista de objetos en movimiento 3D.( Utilizando unas matrices Gouraud ultra-rápidas de mi cosecha). Vamos paso a paso.
En definitiva: Es para uso como animación no como imagen
Eso no lo podrás hacer con el FireWorks solamente. ( bueno si, como secuencia pesadísima).
Y no hablemos del "peso", una imagen vectorizada desde flash ( o fireworks) y animada después de esta forma, pesará muchísimo menos que un jpg, gif, png, u otra forma de guardado para publicación. Y aunque la animación venga de una imagen previa, añade 0.2Kb al total.
Cada herramienta es para lo que es y hace lo que hace.
El problema de tu mente vaga: Yo no te lo puedo resolver, apenas alcanzo a darte algo del trabajo necesario ya realizado.
Por Sisco el 15 de Enero de 2007
Por Gabriel el 15 de Enero de 2007
Por Rafeo el 15 de Enero de 2007
Por jomajudo el 15 de Enero de 2007
Por Freddie el 15 de Enero de 2007
jomajudo_blog :
Por anonimo el 19 de Enero de 2007
Por daniel el 02 de Febrero de 2007
Por Teseo el 03 de Febrero de 2007
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 daniel el 08 de Febrero de 2007
Por migual sanchez el 08 de Febrero de 2007
Por daniel el 08 de Febrero de 2007
Por Teseo el 08 de Febrero de 2007
Esos tres arrays forman el haz de luz. El primero es el color, el segundo el alpha y el tercero el ratio.
Eso quiere decir que:
El color 0xffffff (blanco) tiene un alpha de 40 y y tiene su valor máximo en centro 0 (dado que es radial) hasta el valor 37 (de 0 a 255)
El color 0xe7cf0f (cobre) tiene un alpha de 60 y tiene su valor máximo en 37 degradandose con el blanco por la derecha y con el color 0 (negro) por la izquierda y que tiene alpha 100 hasta 255 (maximo del negro).
Disminuir el foco?:
cl = [0xffffff,0xe7cf07,0]; al = [40,60,100]; rt = [0,17,100]; por ejemplo. (bajamos el comienzo del negro y del cobre)
disminuir intensidad?:
cl = [0xffffff,0xe7cf07,0]; al = [20,30,100]; rt = [0,37,255]; (bajamos los alphas del blanco y el cobre)
Y si queremos cambier el color del foco pues colocamos los colores que deseemos...
Estos 3 array tienen que tener el mismo número de elementos pueden ser más o menos según deseemos el foco.
Un grupo como este:
cl = [0xffffff,0xe7cf07,0x0000ff,0]; al = [40,60,60,100]; rt = [0,37,67,255]; añadiria un halo azul al foco.
Por invitado el 10 de Febrero de 2007
Por julia83 el 21 de Febrero de 2007
Por elena el 18 de Mayo de 2007
Por Toni el 08 de Junio de 2007
Iba a preguntar una cosa pero ya lo ha contestado Teseo en su último comentario (Disminuir el foco?) así que no digo nada D
Un saludo a todos
Por maritza el 15 de Agosto de 2007
Por vergardo el 25 de Octubre de 2007
Simplemente debo importar a la biblioteca una imagen (que puede ser un bmap o jpg?) y ponerle con el nombre imagen?
Gracias..
Por Frankito el 25 de Octubre de 2007
Gracias y un saludo.
Por Freddie el 25 de Octubre de 2007
vergardo_blog :
Por jripper el 25 de Octubre de 2007
Gracias
Por Cristian el 12 de Diciembre de 2007
Por enrique el 22 de Diciembre de 2007
mi correo: [email protected]
Por juan carlos gamez el 28 de Diciembre de 2007
Por Miguel el 18 de Marzo de 2008
Soy novato en Flash y no tengo ni idea
gracias
Por Titi el 27 de Marzo de 2008
Por jaider el 03 de Abril de 2008
Por franco el 30 de Abril de 2008
gracias
Por silvia el 13 de Junio de 2008
¡¡¡Eres un coco!!! y con muchaaa paciencia!!
Gracias por existir!!!!
Por elvis el 29 de Junio de 2008
los nesecito me urge gracias!!!!
[url][email protected]
Por elvis el 30 de Junio de 2008
gracias:) que dios bendiga
quiero massss:D
Por elvis el 30 de Junio de 2008
Por William el 25 de Julio de 2008
Por Zetro el 02 de Octubre de 2008
Por anonimo el 24 de Agosto de 2009
Por anonimo el 24 de Agosto de 2009
Por frexxxaa_ciber el 02 de Octubre de 2010
kiero saber en kelienas del action script se akomodan los valores del tamaño de la imagen...
Por kimposible el 18 de Octubre de 2010
Por mario el 16 de Marzo de 2011
Por moxxa el 28 de Octubre de 2011
Por Aliorz el 01 de Febrero de 2013