Foros del Web » Creando para Internet » Flash y Actionscript »

Efecto FADE

Estas en el tema de Efecto FADE en el foro de Flash y Actionscript en Foros del Web. Como logro un efecto de FADE sobre un MC. Lo he hecho de esta forma: Código: on(rollOver){ while(this._alpha <= 100){ this._alpha = this._alpha + 1; ...
  #1 (permalink)  
Antiguo 03/02/2005, 00:43
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Efecto FADE

Como logro un efecto de FADE sobre un MC. Lo he hecho de esta forma:
Código:
 on(rollOver){
  while(this._alpha <= 100){
    this._alpha = this._alpha + 1;
  }
 }
 
 on(rollOut){
  while(this._alpha = 100){
    this._alpha = this._alpha - 1;
  }
 }
pero me lo hace demasiado rápido como hago para hacerlo un poco más lento?

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 03/02/2005, 03:19
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 9 meses
Puntos: 12
Basta que cambies el valor del incremento.
this._alpha+=0.5;
y
this._alpha-=0.5;
Un saludo.
  #3 (permalink)  
Antiguo 03/02/2005, 06:43
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Sip pero ...

Eso lo había entendido pero el problema es que no me funciona ese código.

Salu2
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 03/02/2005, 08:59
 
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.
  #5 (permalink)  
Antiguo 03/02/2005, 09:00
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 4 meses
Puntos: 5
creo que deberias usar un prototipo... este es un buen tutorial que te servira para el efecto fade: http://www.flashxl.net/tutorial.php?sid=204

tendras que modificarle algunas cosas, y leer todo el tutorial (no es largo), pero creo que te servira mucho
  #6 (permalink)  
Antiguo 03/02/2005, 09:48
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Pero ...

Luis GB que cosa es:
Código:
 
 clearInterval(reloj);
algún objeto o algo por el estilo?

Ludwingg muy bueno pero un poco díficil para mi pues estos son mis comienzos con Flash y ActionScript. Mi especialidad es PHP y MySQL pero quiero adentrarme en este mundo.

Salu2
__________________
Ing. Reynier Pérez Mira
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:19.