Comunidad de diseño web y desarrollo en internet online

Vincular un boton con un MC

Citar            
MensajeEscrito el 06 Nov 2007 07:40 pm
Que Tal? necesito saber como soluciono el siguiente problema: Tengo en el timeline principal dos MC; el primero tiene una animacion de un globo terraqueo que se encuentra en el centro de la pagina y se desplaza hacia atras achicandose, luego que se achica, se queda permanentemente "flotando".
Por otro lado tengo un boton el cual es un simple boton de volver; ahora el problema esta en que lo que necesito es que cuando de la orden de volver, el globo deje de hacer la animacion y vuelva a su tamaño y ubicacion original.
Yo pienso que tendria que darle un AS al boton el cual diga: cuando cliquee ir al fotograma X dentro del mc X (el globo) rebobinar.
Espero que se entienda y si alguien lo sabe, o tiene algun consejo, estaré agradecido.

Por ivanjamaica

19 de clabLevel



 

msie7
Citar            
MensajeEscrito el 07 Nov 2007 11:51 am
Si lo que quieres es ir a un fotograma determinado de tu animación y que se quede ahí, puedes hacerlo mediante la función:
  • Instancia_MC.gotoAndStop(3);
    O bien:
  • Instancia_MC.gotoAndStop("zona1");

    Donde 3 es el fotograma, y, en la otra opción, "zona1" es la instancia que le diste al fotograma.


Ahora bien, si lo que quieres es que el MC del globo terráqueo se rebobine (es decir, haga todo lo que hizo pero marcha atrás en la linea de tiempo), pues también tienes diversas opciones.

Este tema de rebobinar MC's ya fue tratado muchas veces, pero te voy a explicar un poco como lograr eso:

Verás, cuando una película flash se reproduce, lo que hace es avanzar un fotograma cada X tiempo (ese tiempo lo defines tu en el panel propiedades, abajo del escenario). Para lograr eso (suponiendo que esta parado, ya que inicialmente siempre siempre se reproduce por defecto), lo que puedes hacer es hacer una acción play();, es lo mas sencillo y lógico.

Pero como he dicho antes, ese efecto también se puede conseguir haciendo que cada vez que pasa ese X tiempo definido antes, la película avance un fotograma ¿no?. Bueno, eso lo podemos lograr con este sencillo código de AS2:

Código :

mc.onEnterFrame=function(){
   mc.nextFrame();
}

(recuerda, suponiendo siempre que la película esta detenida, sino te correrá el doble de rápido XD)
Bien, pues por lógica, el efecto inverso será así:

Código :

mc.onEnterFrame=function(){
   mc.prevFrame();
}

Bueno, esto hace que tu película se rebobine continuamente hasta el frame 1. Digo continuamente porque este evento nunca se detendrá, es decir, siempre querrá ir hacia atrás (obviamente como el frame 1 es el primero que hay no podrá ir mas atrás), lo cual comporta un continuo consumo de recursos que es innecesario. Por otra parte, lo que sucede es que no puedes pararlo a la mitad, es decir, eso lo hará rebobinar hasta el 1, no podrías pararlo a mitad del recorrido si quisieras.

Vale, entonces le tenemos que decir que en el frame que nosotros elijamos deje de aplicar el evento onEnterFrmae. Para hacerlo mas sencillo, lo que haremos será ponerlo en un botón, así que al presionar haga todo eso. Al botón, lo instanciamos como "btn".

Código :

btn.onPress = function() {
   mc.onEnterFrame = function() {
      if (mc._currentframe <= 10) {//si el frame en el que esta ahora es menor o igual a 10
         delete (mc.onEnterFrame); //que deje de aplicar el evento
      }else{
      mc.prevFrame();//si aún esta por encima de 10, que continúe aplicandolo
      }
   };
};


Bueno, por si te quedan dudas, aquí te pongo un ejemplo:

Aquí tienes el Archivo original.

Salu2 (y)

Por Bleend

Claber

3385 de clabLevel

10 tutoriales
4 articulos

Genero:Masculino   Héroes

Barcelona

firefox
Citar            
MensajeEscrito el 07 Nov 2007 10:06 pm
Muchas gracias por lo explicado, lo voy a poner en practica! Cualquier duda o inconveniente aviso.

Por ivanjamaica

19 de clabLevel



 

msie7

 

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