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

Disminuir _alpha de un MC (prueba).

Estas en el tema de Disminuir _alpha de un MC (prueba). en el foro de Flash y Actionscript en Foros del Web. Hola [email protected] buenos días. He decidido lanzarme al AS. He creado este código con la idea de disminuir el alpha de un mc progresivamente. Para ...
  #1 (permalink)  
Antiguo 04/07/2005, 04:56
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Disminuir _alpha de un MC (prueba).

Hola [email protected] buenos días.
He decidido lanzarme al AS.
He creado este código con la idea de disminuir el alpha de un mc progresivamente.
Para mí es facilísimo con interpolaciones, pero necesito aprender AS poco a poco.

this._alpha=0;
i=0;
n=100;
this.peliuno._alpha=i;
for (i=1; i<=n; i);
do{
this.peliuno._alpa=i;
i++;
}while(i<=n);

Cuando lanzo el proceso, dice:
"Un script de esta película está provocando que el reproductor de flash se ejecute lentamente..."
¡¡Pero que he hecho!!

Espero vuestra asistencia.
__________________
Slay
  #2 (permalink)  
Antiguo 04/07/2005, 05:21
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 15 años, 1 mes
Puntos: 1
this._alpha=0;
i=0;
n=100;
this.peliuno._alpha=i;
for (i=1; i<=n; i);
do{
this.peliuno._alpa=i;
i++;
}while(i<=n);
.......... viendo tu code me puedo dar cuenta ke la programacion para ti no es algo nuevo... cosa ke te sera muy util si li ke kieres es aperender AS.

-------al grano.
las propiedades se trabajan de tres formas (minimo)
1- desde el mismo objeto (mc).
2- desde la linea principal.
3- desde otro mc.

Ejemplo caso 1.
onClipEvent(enterFrame){
this._alpha ++;
}
Ejemplo caso 2.
mc.onEnterFrame = function(){
this._alpha ++;
}

Ejemplo caso 3.
onClipEvent(enterFrame){
_root.otroMC._alpha ++;
}

........ y ademas hay otras formas pero creo ke es suficiente con estas.

En tu code estas usando un for y un do..while. Ke para este caso no son necesarios, ya ke para crear un loop es suficiente con enterFrame, en cualkiera de la tres formas ke te muestro arriba.

-Cuando uses el this, ten cuidado de donde estas apuntando.
El this siempre apunta al lugar donde esta el code en accion... en tu caso seria la raiz.
Pero cuando apuntas a la raiz y ya estas en esta no es necesario usar el this, ya ke por logica el compilador buscara primero en esta.

Espero haberte aclarado un poco la peli.

Salu2

.
  #3 (permalink)  
Antiguo 04/07/2005, 05:45
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Hola pulento, buenas.
He probado los tres casos de ejemplo y lo entiendo a la perfección.
De todos modos mi duda es hacer aparecer (o desaparecer) progresivamente un MC.
Por ello le he dado dos valores de inicio(i) y fin(n). Así crear una función para sumar o restar _alpha linealmente.
Espero haberme explicado.
Salu2.
__________________
Slay
  #4 (permalink)  
Antiguo 04/07/2005, 12:39
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 13 años, 5 meses
Puntos: 53
una cosa que teneis mal en tu code de inicio

for (i=1; i<=n; i);
do{
this.peliuno._alpa=i;
i++;
}while(i<=n);

es ese while, para que rayos necesitas un while si ya estas usando un for?? es por eso que se cicla y nunca sale del ciclo, por eso cuando lo corres te dice que se a puesto muy lento, por que nunca sale de ese cilco infinito, unicamente necesitas uno de esos bucles, o bien el for, o usas el while.......

bueno, eso es solo para que en futuras ocaciones no hgas eso en ningun lenguaje de programacion, pero como estamos hablando de flash, en lugar de usar esos bucles, te recomiendo que hagas un onEnterFrame ya que va mas despacio, si haces un ciclo for, el procesadorde la maquina va tan rapido que tu vista ni siquiera va a ver nada pues lo hara en miliegundos, y no vas a ver nada de nada, por eso si usas un onEnterFrame ahi tu defines la velocidad 12 veces por segundo esta por default en el fla....

bueno espero hallas comprendido

have funn
  #5 (permalink)  
Antiguo 05/07/2005, 04:09
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Hola chicos ya lo tengo más claro pero sigo sin obtener resultados.

i=0;
n=100;
_root.peliuno=function(){
for (i=1; i<=n; i);
_root.peliuno._alpa=i;
i++;
}

Alguien sabe porqué no consigo el efecto???
__________________
Slay
  #6 (permalink)  
Antiguo 07/07/2005, 10:21
 
Fecha de Ingreso: diciembre-2004
Mensajes: 190
Antigüedad: 13 años
Puntos: 0
Creo que este código puede serte de utilidad, pon lo siguiente en las acciones del clic en donde tienes o cargas la imagen. Lo q hace es disminuir y aumentar progresivamente el alpha del clic, si quieres que vya mas rápido cambia el número de (cant-=1) y de (cant+=1). espero que te sirva.

Puedes ver donde lo encontre aquí, te explica el codigo que se usa.
http://www.scourdesign.com/articulos...es/flash/7.php


espero que te sirva, saludos.

onClipEvent (load) {
var visible = 1;
var cant = 100;
}

onClipEvent (enterFrame) {
if (visible == 1) {
_alpha = cant;
cant -= 1;
if (cant == -1) {
visible = 0;
}
} else {
_alpha = cant;
cant += 1;
if (cant == 101) {
visible = 1;
}
}
}
  #7 (permalink)  
Antiguo 07/07/2005, 10:31
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 13 años, 5 meses
Puntos: 53
Cita:
Iniciado por Slay
Hola chicos ya lo tengo más claro pero sigo sin obtener resultados.

i=0;
n=100;
_root.peliuno=function(){
for (i=1; i<=n; i);
_root.peliuno._alpa=i;
i++;
}

Alguien sabe porqué no consigo el efecto???
ya te respondi esa pregunta en el post anterior
Cita:
Iniciado por stock
bueno, eso es solo para que en futuras ocaciones no hgas eso en ningun lenguaje de programacion, pero como estamos hablando de flash, en lugar de usar esos bucles, te recomiendo que hagas un onEnterFrame ya que va mas despacio, si haces un ciclo for, el procesadorde la maquina va tan rapido que tu vista ni siquiera va a ver nada pues lo hara en miliegundos, y no vas a ver nada de nada, por eso si usas un onEnterFrame ahi tu defines la velocidad 12 veces por segundo esta por default en el fla....
osea que si consigues el efecto, pero es muy rapido y no lo puedes ver
  #8 (permalink)  
Antiguo 07/07/2005, 12:25
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Hola Slay

Resumiendo, yo haria lo siguiente:
Código:
myMC.onEnterFrame = function() {
     this._alpha += 1; // Para subir la transparencia
     if (this._alpha >= 100) {
          delete this.onEnterFrame;
     }
}
myMC.onEnterFrame = function() {
     this._alpha -= 1; // Para bajar la transparencia
     if (this._alpha <= 0) {
          delete this.onEnterFrame;
     }
}
Eso lo pondrias en la linea de tiempo de la pelicula, pero usas uno u otro. Para manejarle la velocidad de transicion del efecto, cambias los FPS en la ventana de propiedades.

Intentalo, a ver que tal te va.
__________________
JuniHH
- Mi blog
- Mi portafolio
  #9 (permalink)  
Antiguo 11/07/2005, 06:56
 
Fecha de Ingreso: enero-2002
Ubicación: Barcelona
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Chicos gracias a todos, finalmente me quedo con la aportación de LINOSINK. El problema es que si cambio los valores de cant-= y cant+= sólo me funciona de alph 100 a alpha 0.
De todos modos muuuuuuuuuuchas gracias.
Salu2.
__________________
Slay
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:45.