Comunidad de diseño web y desarrollo en internet online

Desesperación absoluta total

Citar            
MensajeEscrito el 13 Mar 2008 10:45 am
Vamos a ver,

Antes de nada decir que yo en flash hago las cosas con la cuenta de la vieja, vamos, que de actionscript y programación lo justo.

Tengo un problema que es el siguiente:

Tengo una película con varios botones (botón A, botón B...). Cuando pincho en un botón se me ejecuta un movieclip (botón A ejecuta movieclip A) que consiste en la aparición desde alfa 0% a 100% de unas imágenes y un texto.

El problema en sí, es que cuando pincho en otro botón (botón B) quiero que el movieclip A desaparezca mediante una transición suave de 100 a 0 y no de repente, como me sucede ahora mismo, y después cargue el movieclip B correspondiente.

Con un par de botones, tengo la solución por la cuenta de la vieja, pero mi problema es que son 10 botones.

Me han dado esta solución (difícil de entender para mí):

1) Se hará jugando con 2 variables:
_root.seccion_actual
_root.seccion_a_cargar

2) Hacemos una animación de "descarga" para cada sección (las marcamos con un nombre de frame por ejemplo "salida_filosofia", "salida_compromiso", etc...).
En el frame final de la animación de salida le diremos que nos cargue la nueva sección. Esto dependiendo de si se carga un movieclip o se envía a un frame. Para ello usamos la variable _root.seccion_a_cargar

3) Cada vez que se entra en un apartado tenemos que guardar en la variable _root.seccion_actual el nombre del movieclip (o frame) de cada apartado, para saber después que animación de salida tenemos que cargar:
var _root.seccion_actual = "movieclip_filosofia";

4) En los botones del menú de secciones, cuando clickamos una sección, tenemos que decirle cual va a ser la sección que se va a cargar y cual es la sección que va a hacer la animación de salida.
Vendría a ser algo así:
on(release){
_root.seccion_a_cargar = "esta seccion"; // definimos la sección a la que queremos cambiar
_root[_root.seccion_actual].gotoAndPlay("salida_"+_root.seccion_actual); //cargamos la animación de salida de la sección donde estamos
}

Al hacer las instrucciones variará dependiendo de si el flash es un solo movieclip o si son varios, pero se juega con las 2 variables exactamente igual en ambos casos.


Por favor, a ver si me podéis echar una mano,

Muchas gracias,

Chao,

Cualquiercosa

Por Cualquiercosa

1 de clabLevel



 

safari
Citar            
MensajeEscrito el 13 Mar 2008 02:46 pm
usa la clase Tween:

Código :

//importas la cllase y sus suavizados
import mx.transitions.Tween;
import mx.transitions.easing.*;
//
//cantidad de botones
var cantBtns:Number = 10;
//con for programamos todos los botones de una vez
for(var i:Number = 1; i <= cantBtns; i++){
  var myMovieClip:MovieClip = this["mc"+i];
  this["boton_"+i].onRelease = function(){
    var miTween:Tween = new Tween(myMovieClip, "_alpha", Back.easeOut, 0, 100, 1, true);
  }
  this["boton_"+i].miTween.onMotionFinished(){
    fadeOut();
  }
}
function fadeOut(){
  for(var j:Number = 1; j<= cantBtns; j++){
    var miTween2:Tween = new Tween(this["mc"+j], "_alpha", Back.easeOut, 100, 0, 1, true);
  }
}


*no he preobado el codigo pero la idea es esa je :P

Por penHolder

Claber

4661 de clabLevel

39 tutoriales
2 articulos

Genero:Masculino   Premio_Secretos

| mdz |

firefox
Citar            
MensajeEscrito el 13 Mar 2008 03:14 pm
Muchas gracias. Lo de la clase Tween ya lo había pensado, pero no estaba seguro si funcionaría en ese caso. Voy a problarlo.

Por Cualquiercosa

1 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.