Tema: Efecto FADE
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/02/2005, 08:59
Luis GB
 
Fecha de Ingreso: febrero-2005
Mensajes: 1
Antigüedad: 19 años, 2 meses
Puntos: 0
Hola.
Con ese código no conseguirás lo que deseas. Cuando flash ejecuta el actionscript la linea del tiempo se detiene. Por lo que siempre se producirá el cambio de golpe. Es más, si el bucle while no finalizara la animación quedáría detenida ahí.
Lo que has de hacer es crear un proceso en el que se cambie el alfa de tu clip progresivamente, es decir, cada cierto tiempo aumentara o disminuira el valor del alfa.
Si lo que quieres es que se haga visible al pasar por encima y desaparezca cuando apartas el raton debes escribir algo asi:

on (rollOver) {
clearInterval(reloj);
reloj = setInterval(function () {
if (_parent.btn._alpha>0) {
_parent.btn._alpha -= 1;
} else {
clearInterval(reloj);
}
}, 1);
}
on (rollOut) {
clearInterval(reloj);
reloj = setInterval(function () {
if (_parent.btn._alpha<100) {
_parent.btn._alpha += 1;
} else {
clearInterval(reloj);
}
}, 1);
}


Llamando "btn" al clip en cuestion. Como ves se trata de crear una linea de tiempo que hace variar el alfa del clip btn en un 10% cada 1 milisegundos. Ten en cuenta dos cosas, no podemos hacer referencia al clip cuyo alfa ha de cambiar con un "this" ya que has creado una linea de tiempo independiente a la principal de la pelicula, y "this" no apuntaría a nada. Y la frecuencia con la que se ha de ejecutar la funcion que hemos puesto dentro de nuestra nueva linea de tiempo viene dada por los milisegundos que especifiques, pero nunca sobrepasara en velocidad a la linea de tiempo principal. Es decir, que si tu flash esta diseñado con una velocidad de 24 fps (eso es un frame cada... 41.6 milisegundos) tu nueva linea de tiempo ejecutara la funcion que le hayas puesto cada 41 milisegundos como mínimo.
Habrás visto que en cada evento del clip (onrollover y onrollout) lo primero que hago es borrar la linea de tiempo que pudiera haberse creado antes por el otro evento.