Comunidad de diseño web y desarrollo en internet online

BitmapData - Agua y Mascaras

Citar            
MensajeEscrito el 22 Abr 2008 10:27 am
Hola a todos.
He seguido el tutorial para crear un efecto de agua sobre una imagen usando la clase bitmapData:

Me gustaría saber si es posible, de alguna manera conseguir que el displacement o algun bitmapData genere una máscara.
Lo quiero para hacer aparecer una imagen bajo el agua generada.
¿ Si no se puede, que otra solución me proponeis?

Muchas Gracias

Por kiwiki098

15 de clabLevel



 

safari
Citar            
MensajeEscrito el 25 Abr 2008 06:48 am
Bueno, al final lo he conseguido usando una copia del bitmap, una matriz y un clip para borrar. Una goma vamos.
Ahora intento cargar las imágenes dinámicament y no desde la libreria, pero tengo problemas para devolver un valor a la función que crea el efecto. Me explico, el codigo es algo tipo así:

Código :

import flash.display.*;
import flash.geom.*;
import flash.filters.*;
// mis variables
var numA
var mcl
var listener //etc...

function cargaFoto(num){
   mcl.addListener(listener);
   mcl.loadClip("fotos//img0"+num+".jpg",clip);   
}
listener.onLoadInit = function(mc:MovieClip) {
   // aquí hace sus historias
   // y ahora quiero que devuelva un valor que he calculado una vez cargada la foto.
        return(elValor)
};
function efecto(){
        //aquí hace sus cosas y a un momento le digo
        img=cargaFoto(numA)
        //y despues seguiria..
}
efecto()

Y eso, no consigo hacer el return de lo que calculo en el onLoadInit. Ya se que es una función diferente, llamo a cargaFoto y hago el return() en onLoadInit(), pero es que solo me interesa devolver ese valor una vez cargada la foto... y no se como hacerlo. Igual es algo estúpido, pero no lo veo claro.
:crap:

Por kiwiki098

15 de clabLevel



 

safari
Citar            
MensajeEscrito el 25 Abr 2008 08:11 am
Tienes dos problemas con el onLoadInit:

  1. Es una función asíncrona, o sea que se ejecuta en su momento, que no tiene que ser (y no será) cuando llamaas a efecto().
  2. La función devuelve Void (vacío), o sea que no puedes ponerle un return.

Pero la solución es una y simple: llama a la función efecto() desde el loadInit, así podrás, además, pasarle los datos que quieres.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 28 Abr 2008 01:12 pm
Gracias, por tu respuesta The Fricky!
He conseguido crear, finalmente, el efecto que queria.

Por kiwiki098

15 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.