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

Alfa .........

Estas en el tema de Alfa ......... en el foro de Flash y Actionscript en Foros del Web. Amigos, estoy en la recta final de mi humilde paginita en la cual muchos de ustedes colaboraron con sugerencias, codigos, etc ... El hecho es ...
  #1 (permalink)  
Antiguo 08/04/2005, 13:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 20 años, 3 meses
Puntos: 0
Alfa .........

Amigos, estoy en la recta final de mi humilde paginita en la cual muchos de ustedes colaboraron con sugerencias, codigos, etc ...
El hecho es que en los primeros segundos tengo dos fondos que ocupan toda la pantalla y que tienen un degradado simple hacia abajo, el primero es el del preloader que una vez la peli se cargo se va esfumando con tween hasta que su alfa se vuelve 0, y a su vez el fondo de la presentacion que conforme el del preloader funde este hace lo contrario ....
El hecho es que estas transiciones me frenan mucho la presentacion en esos segundos, se ve que consumen recursos del sistema a lo loco, la pregunta es cual es la forma mas adecuada de hacer trabajar lo menos posible al procesador ....???
Mi frame rate es 33 fps, pense en hacerlo con AS, el degradado, sera una buena solucion...?, si lo es podrian tirarme la linea de codigo para hacer que esa instancia del simbolo "fondo 1" se esfume (y al reves, que surja) a una velocidad establecida ... en por ejemplo 30 frames....?

GRACIAS DESDE YA !!!!
__________________
germanplus

Última edición por germanplus; 08/04/2005 a las 13:21
  #2 (permalink)  
Antiguo 08/04/2005, 13:50
 
Fecha de Ingreso: abril-2005
Mensajes: 76
Antigüedad: 19 años, 7 meses
Puntos: 0
Antes de nada, copia de seguridad por si se rompe. Luego prueba a hacer un tween de color (hacia el color del fondo) en lugar de un tween de alpha.

Si a pesar de eso no mejora, quitas los tweens, conviertes tu fondo a movie clip y le das un nombre de instancia, en caso de que no lo tuvieras.

Ahora yendo un poco a saco y entendiendo que cuando el preloader acaba haces un play y que estás en _root, en el frame en el que quieras que el fondo empiece a desvanecerse haces:

Código:
stop();

onEnterFrame = function(){
nombre_instancia._alpha -=10; if(nombre_instancia._alpha<0){
delete this.onEnterFrame; _root.play();
}
}
este código hará que se detenga la cabeza lectora pero que el alpha disminuya de 10 en 10 a 33 fps (onEnterFrame). Si quieres que sea más suave pon un valor inferior a 10 y si quieras que vaya más rápido mayor que diez.

Esta no es la forma más correcta pq como comentas el alpha en objetos grandes carga bastante el procesador. Lo ideal sería usar setInterval y un setTransform ó setRGB convirtiendo el movieClip al color del fondo (tinando en lugar de destintar) pero el onEnterFrame es más sencillo y quizá te sirva.

no podemos ver nada on-line aún??

suerte!
  #3 (permalink)  
Antiguo 08/04/2005, 14:00
Avatar de leon@rdo  
Fecha de Ingreso: marzo-2005
Ubicación: Lawtón /cuba
Mensajes: 36
Antigüedad: 19 años, 7 meses
Puntos: 0
Hola para aplicarle alfa a algo por codigo es algo asi:
on (rollOver)
{
nombre de instancia._alpha = 80;
}

on (rollOut)
{
nombre de instancia._alpha = 100;
}

espero que te sirba.
__________________
.::Te gusta la programacion flash una buena opcion::. :ojotes:
  #4 (permalink)  
Antiguo 08/04/2005, 14:02
 
Fecha de Ingreso: abril-2005
Mensajes: 76
Antigüedad: 19 años, 7 meses
Puntos: 0
bueno, esto es para aplicar alpha a algo por código al hacer rollOver en un botón...
  #5 (permalink)  
Antiguo 08/04/2005, 14:21
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 20 años, 3 meses
Puntos: 0
excelente

xavi, tu codigo es lo que precisaba, ahora tengo que probarlo en el server pues aca en mi mac todo va volando, jajjaja ...
Te cuento luego !!!!!




Gracias a vos tb Leon@rdo !!!
__________________
germanplus
  #6 (permalink)  
Antiguo 08/04/2005, 19:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 20 años, 3 meses
Puntos: 0
un detallecito ......

Xavi me paso el codigo de arriba que funciona a la perfeccion, ahora mis pobres conocimientos de As no me permiten hacer el cambio necesario para que el alfa pase de 0 a 100 , alguien que me de una manito ....???


Gracias !!!
__________________
germanplus
  #7 (permalink)  
Antiguo 09/04/2005, 05:51
 
Fecha de Ingreso: abril-2005
Mensajes: 76
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por germanplus
Xavi me paso el codigo de arriba que funciona a la perfeccion, ahora mis pobres conocimientos de As no me permiten hacer el cambio necesario para que el alfa pase de 0 a 100 , alguien que me de una manito ....???


Gracias !!!
yo mismo!

en el mismo contexto anterior

Código:
stop();

onEnterFrame = function(){
nombre_instancia._alpha +=10; if(nombre_instancia._alpha>99){
delete this.onEnterFrame; _root.play();
}
}
te lo cuento para que lo entiendas (es muy muy sencillo)

le estas diciendo que onEnterFrame (a 33 fps, que en realidad son menos pq flash player no los respeta) disminuya (-=) o aumente (+=) la propiedad alpha (mc._alpha) de 10 en 10. Y que cuando lo haya hecho (alpha mayor que 99, es decir, alpha aproximadanebte 100) deje de comprobar (delete onEnterFrame) y haga play.
  #8 (permalink)  
Antiguo 09/04/2005, 15:28
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 20 años, 3 meses
Puntos: 0
gracias, pero ....

Xavi, no me funciona, ejem ....
me queda siempre visible la instancia, que sera...?
la idea es que de alpha 0 llegue a 100 y quede ahi fija ...
perdona lo pesado ....
__________________
germanplus

Última edición por germanplus; 09/04/2005 a las 16:13
  #9 (permalink)  
Antiguo 09/04/2005, 16:22
 
Fecha de Ingreso: agosto-2004
Mensajes: 237
Antigüedad: 20 años, 3 meses
Puntos: 0
Stupid me !!!!

Habia puesto la instancia con alpha 100, cuando debi ponerla con alpha 0 y alli aplicar el code ....

Saludos y ...

Viva xavi !!!!
__________________
germanplus
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 16:57.