crearRejilla(imagenes_mc);, pero no hace nada, espero me puedan ayudar gracias.
Partimos de las dos imágenes que serán inicio y final de la transición. Colocamos las imágenes en la misma posición en distintas capas, de modo que esté una encima de la otra. Para que el efecto quede bien, las dos imágenes deben tener las mismas dimensiones.
La imagen de la capa superior es la que se va a "disolver" y dejará visible la de la capa inferior.
Una vez que tengamos situadas las imágenes convertimos en clip de película la situada en la capa superior con origen en la esquina superior izquierda, después le asignamos como nombre de instancia inicio_mc.
Creamos un rectángulo de 4 x 4 píxeles y lo convertimos en clip con el origen en la esquina superior izquierda, lo borramos del escenario y en la librería cambiamos sus opciones de vinculación, le asignamos el identificador celdita y marcamos las opciones Exportar en para ActionScript y Exportar en primer fotograma.
El siguiente paso es definir una función crearRejilla, que nos creará la máscara de rejilla para enmascarar al clip que pasemos como parámetro.
function crearRejilla(enmascarado_mc:MovieClip) {
// tiempo_minimo-> espacio minimo en milisegundos en que la transición empieza
var tiempo_minimo:Number = 500;
// duracion máxima de la transicion en milisegundos
var duracion_transicion:Number = 500;
// creo el clip que enmascará inicio_mc
var maskara:MovieClip = this.createEmptyMovieClip("maskara_mc", 1);
// recoloco en la misma posicion que el clip
maskara._x = enmascarado_mc._x;
maskara._y = enmascarado_mc._y;
// convierto maskara en la mascara del clip
enmascarado_mc.setMask(maskara);
// creo la rejilla
for (var i = 0; i<enmascarado_mc._width; i += 4) {
for (var j = 0; j<enmascarado_mc._height; j += 4) {
// creo un objeto para asignarle propiedades a cada clip de las celdas de la rejilla
var posicion = new Object();
// temporizador-> tiempo que tarda en disolverse cada celda una vez que ha sido creada,
// es un valor entre tiempo_minimo y tiempo_minimo+duracion_transicion
// (ver código dentro clip celda)
posicion.temporizador = tiempo_minimo+Math.ceil(Math.random()*duracion_transicion);
posicion._x = i;
posicion._y = j;
// creo la celda
maskara.attachMovie("celdita", "celda"+i+"_"+j, maskara.getNextHighestDepth(), posicion);
}
}
}
Con esto creamos la máscara de rejilla con sus celdas, pero todavía falta el código que va a utilizar la variable temporizador que hemos definido para cada celda y que es la que indica cuando desaparece cada celda.
Hacemos doble clic en la librería sobre el clip celda para pasar al modo de edición interna. En el primer fotograma podemos este código:
function quitar() {
clearInterval(quitarInterval);
this.removeMovieClip();
}
var quitarInterval = setInterval(this, "quitar", temporizador);
stop();
Con esto lo que hacemos es ejecutar la función quitar, que elimina la celda, una vez que ha transcurrido la cantidad de milisegundos almacenada en temporizador desde que se creó la celda.
Sobre la base de este ejemplo podéis hacer vuestra variaciones para crear nuevos efectos con máscaras. Además, tened en cuenta que la reproducción del efecto es totalmente aleatoria.