Comunidad de diseño web y desarrollo en internet online

como desplazar un movieclip a la vez que su linea de tiempo ?

Citar            
MensajeEscrito el 06 Feb 2011 06:53 pm
Buenas tardes,

Estoy realizando mis primeras pruebas con un minijuego avanzado, ya he usado otros metodos de animación de Sprites.

Me gustaría saber si hay alguna manera de controlar la linea de tiempo ,al mismo tiempo que desplazamos el movieclip.

Es decir, tenemos un Moviclip Camina , que se divide en :

Frame 1 al 20 izquierda
Frame 22 al 42 derecha
Frame 44 al 64 atras
Frame 66 al 86 adelante

Siempre que realizo un listener para averiguar si se ha pulsado una de esas teclas lo desplazo, y mi intención es que mientras esté la tecla pulsada vaya aumentando de frames hasta completar su franja, y vuelve a comenzar.

Se me desplaza y me activa en el frame que quiero del movieclip, pero no continúa reproduciendose si no que siempre vuelve a reproducirse como mucho sus 2 primeros Frames.

Alguien tiene idea de como resolver este problema ?

Aqui dejo algunos ejemplos de lo que he probado hasta ahora


Código ActionScript :

function enterFrameHandler(e:Event):void {
         upKey = Keyboard.UP;    
         downKey = Keyboard.DOWN;
         
         var tiempo:Timer=new Timer(100,0);
         tiempo.start();
         tiempo.addEventListener(TimerEvent.TIMER, mover);
         function mover(e:TimerEvent) {
            
            if (pressAbajo==true) {
               for (contador=1; mcCamina.currentFrame<30; contador++) {
                  mcCamina.gotoAndPlay(contador);
                  if (contador==29) {
                     contador=1;
                  }


               }
               mcCamina.z+=velocidad;

            }
            if (pressArriba==true) {
               for (contador=32; mcCamina.currentFrame<121; contador++) {
                  mcCamina.gotoAndPlay(contador);
                  if (contador==121) {
                     contador=32;
                  }


               }
               
               movimientoActual=32;

               mcCamina.z-=velocidad;
            }


            if (pressIzquierda==true) {
               
               if (mcCamina.currentFrame==123) {
                  mcCamina.gotoAndStop(94);
               }
               mcCamina.gotoAndPlay(94);
               mcCamina.x-=velocidad;
               trace(mcCamina.currentFrame);
            }
            if (pressDerecha==true) {
               if (mcCamina.currentFrame==92) {
                  mcCamina.gotoAndPlay(63);
               }
               mcCamina.gotoAndPlay(63);
               mcCamina.x+=velocidad;
            }
         }

Muchas gracias

Por erone

16 de clabLevel



 

msie8
Citar            
MensajeEscrito el 06 Feb 2011 08:29 pm
Hola,
otra forma de hacerlo, que creo que te facilitará un poco este tema, es meter cada una de las acciones de tu personaje en un fotograma diferente de otro MovieClip contenedor. Es decir, creas 4 MovieClips diferentes para cada una de las acciones (izquierda, derecha, atrás y adelante) en lugar de crear uno sólo que contenga todas las animaciones seguidas; y después metes cada uno de estos Clips en otro Clip contenedor (en el fotograma 1 añades el Clip con la animación izquierda, en el 2 la animación de derecha, ...).
De este modo, en cada comprobación de la tecla pulsada sólo tendrás que poner un gotoAndStop: if (pressIzquierda==true) gotoAndStop(1), y así te evitarás hacer todas las comprobaciones currentFrame.
Si esta idea no te convence y quieres seguir con la tuya, yo en tu lugar utilizaría etiquetas para los fotogramas en lugar de comprobar directamente currentFrame, ya que si cambias el número de fotogramas de alguna de las animaciones, tendrás que cambiar todo el código de gestión del movimiento del personaje.

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Feb 2011 11:06 pm
Muchas gracias, aunque no es exactamente lo que quiero hacer, pero de momento ya lo he puesto asi y funciona, mil gracias.

Por erone

16 de clabLevel



 

msie8

 

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