Hola:
Supongamos que tienes 4 fotografias a mostrar en diferentes lugares de la pantalla, y que cada una debe aparecer y desaparecer transcurrido cierto tiempo, tiempo determinado por la duracion de la cancion.
Hay varias formas de crear este tipo de efectos, pero creo que la que te voy a explicar es la mas sencilla, ya que combina un poco de ActionScript y un poco de linea de tiempo. Te lo voy a explicar desde un documento en blanco, y luego tu lo trasladas a lo que tienes.
Lo primero es convertir las fotografias a MovieClips(MC en adelante). Estos MC los colocas por la pantalla a tu gusto, no importa que se superpongan. Ahora en el panel de propiedades a cada uno de los MC les pones de nombre de instancia foto1, foto2, foto3 y foto4. Ademas en la pestaña que pone "Color:" a cada uno, tambien le aplicas un Alpha a 0.
Ahora vamos a cargar un sonido. Lo voy ha hacer desde la biblioteca, asi que lo primero es importarlo a la misma. Si no conoces este proceso dimelo y te lo explico.
Para manejar sonidos desde la biblioteca mediante ActionScript(AS en adelante), hay que ponerle un nombre de vinculacion.
Selecciona el sonido con el boton derecho y pulsa en "Vinculacion..."
Con las opciones "exportar para AS" y "exportar en el primer fotograma" seleccionadas, ponemos un nombre de vinculacion, por ejemplo "sonido".
Con este nombre nos vamos a manejar con AS.
Ahora queda la parte de programacion.
Lo primero es crear un objeto Sound y relacionarlo con nuestro sonido:
Código:
var track:Sound = new Sound();
track.attachSound("sonido");
Ahora creamos unos comportamientos especificos para los MC:
Código:
MovieClip.prototype.alfaMas = function(num:Number):Void {
this.onEnterFrame = function():Void {
this._alpha += num;
if (this._alpha>=100) {
this._alpha = 100;
delete this.onEnterFrame;
}
};
};
MovieClip.prototype.alfaMenos = function(num:Number):Void {
this.onEnterFrame = function():Void {
this._alpha -= num;
if (this._alpha<=0) {
this._alpha = 0;
delete this.onEnterFrame;
}
};
};
Seran los encargados de poner o quitar el "_alpha" de los MC.
Ahora creamos unas variables para un manejo mas comodo de la programacion:
Código:
var duracion:Number = track.duration;
var posicion1:Number = Math.floor(duracion/4);
var posicion2:Number = posicion1*2;
var posicion3:Number = posicion1*3;
var posicion4:Number = posicion1*4;
A continuacion decimos que el sonido arranque desde el segundo 0 y que se repita una sola vez. Ademas le asignamos una cantidad de volumen:
Código:
track.start(0, 1);
track.setVolume(80)
Y ahora que la presentacion empiece:
Código:
//this.onEnterFrame es una instruccion que permite repetirse tantas veces como la cabeza lectora pase por el frame
this.onEnterFrame = function():Void {
//trace nos permitira ver la progresion del sonido. Esto no afecta en nada a la ejecucion del programa. Se puede eliminar esta linea.
trace("Posicion: "+track.position+" Duracion: "+track.duration);
//Si la posicion del sonido es menor que el valor de la variable "posicion1", aplica un "_alpha" constane de +=2;
if (track.position<posicion1) {
foto1.alfaMas(2);
}
//Si la posicion del track es mayor que "posicion1" y menor que "posicion2", aplica una reduccion del "_alpha" a "foto1", y un incremento a "foto2".
if (track.position>posicion1 && track.position<posicion2) {
foto1.alfaMenos(2);
foto2.alfaMas(2);
}
if (track.position>posicion2 && track.position<posicion3) {
foto2.alfaMenos(2);
foto3.alfaMas(2);
}
if (track.position>posicion3 && track.position<posicion4) {
foto3.alfaMenos(2);
foto4.alfaMas(2);
}
//Si la posicion de "track" es igual al total de milisegundos de "track", es que la musica acabo, y entonces aplicamos "alfaMenos" a la ultima foto y rompemos "onEnterFrame";
if (track.position == duracion) {
foto4.alfaMenos(2);
delete this.onEnterFrame;
}
};
Si hay alguna duda dimelo ok?
http://download.yousendit.com/139031AD563B3BF8