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

¿Como se logra un desplazamiento fluido?

Estas en el tema de ¿Como se logra un desplazamiento fluido? en el foro de Flash y Actionscript en Foros del Web. Tengo un circulo que deseo que se mueva de una lado a otro, pero que no se vea como saltando, sino que sea más fluido ...
  #1 (permalink)  
Antiguo 09/07/2006, 22:31
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 6 meses
Puntos: 0
¿Como se logra un desplazamiento fluido?

Tengo un circulo que deseo que se mueva de una lado a otro, pero que no se vea como saltando, sino que sea más fluido el desplazamiento.
  #2 (permalink)  
Antiguo 10/07/2006, 01:08
 
Fecha de Ingreso: julio-2006
Mensajes: 28
Antigüedad: 17 años, 9 meses
Puntos: 0
Intenta hacer que la animación dure más fotogramas (así parecerá que se mueve más lento) y luego pones que la película corra a más fps.

Si el movimiento dura 120 frames y vas a 12 fps, tenemos 10 segundos de animación, que quizá vaya a golpes por la baja tasa de fps (12 o menos suele ser un poco justo).

Puedes intentar poner que la animación dure 240 frames, y vayas a 24 fps. El movimiento durará lo mismo, pero saltará más rápido de frame a frame.

Espero que sea esto lo que necesitabas.


Moelders
  #3 (permalink)  
Antiguo 10/07/2006, 11:55
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola jpunk:
Puedes hacerlo sin utilizar una Interpolación de movimiento y utilizando un sólo frame y con FPS = 24;
Dibuja tu círculo y lo conviertes en MC y le pones éste código:
onClipEvent (load) {
i = 1;
pinicialx = 30;
vinicialx = 20;
acelerax = 100;
amplitudx = 100;
periodox = 2;
pinicialy = 200;
vinicialy = 20;
aceleray = 100;
amplitudy = 100;
periodoy = 2;
desfase = 1*Math.PI/2;
}
onClipEvent (enterFrame) {
t = i/24;
// Movimiento rectilíneo uniforme.
posicionx = pinicialx+vinicialx*t;
this._x = posicionx;
this._y = posiciony;
i = i+1;
}

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #4 (permalink)  
Antiguo 10/07/2006, 12:05
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 17 años, 10 meses
Puntos: 0
¿Donde usas estas variables?
Código:
acelerax = 100;
amplitudx = 100;
periodox = 2;
pinicialy = 200;
vinicialy = 20;
aceleray = 100;
amplitudy = 100;
periodoy = 2;
desfase = 1*Math.PI/2;
Segun veo, utilizas
Código:
posicionx, posiciony, pinicialx, vinicialx, t, i
Me parece que lo tienes de movimientos más complicados que has hechos, ¿no?
  #5 (permalink)  
Antiguo 10/07/2006, 12:57
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 18 años, 6 meses
Puntos: 0
Hola Bandit.

Bueno voy a probarlo, y chequearlo detenidamente ya que darkxer0x me pone en duda.
Aunque ahora tengo otras prioridades pero seguro lo tendré en cuenta.

Gracias por responder.
  #6 (permalink)  
Antiguo 10/07/2006, 13:21
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola darkxer0x:
Solamente di el ejemplo de como hacer el movimiento horizontal de un ejercicio que hice de varios movimientos, por eso esas variables.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #7 (permalink)  
Antiguo 24/08/2006, 13:30
 
Fecha de Ingreso: octubre-2003
Mensajes: 304
Antigüedad: 20 años, 6 meses
Puntos: 0
Bandit buenisimo tu script, te hago una pregunta: lo estoy tratando de usar de la siguiente manera pero no me funciona, tenes idea de que puede ser?

(_root.contenido es la MC que quiero dezplazar)

Código PHP:

_root
.contenido._x = -(_root.contenido._width 30);

_root.contenido.onLoad = function() {
     
1;
     
pinicialx _root.contenido._x;
     
vinicialx 20;
}

_root.contenido.onEnterFrame = function() {
    

         
i/24;
         
// Movimiento rectilíneo uniforme.
         
posicionx pinicialx+vinicialx*t;
         
_root.contenido._x posicionx;
         
i+45;        

    
trace(_root.contenido._x);

  #8 (permalink)  
Antiguo 24/08/2006, 19:29
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola miguellara:
Si lo que quieres mover el MC con nombre de instancia contenido puedes hacerlo simplemente así:
Coloca éste código en el primer frame de tu película:
moverMc = function () {
this._x++;
};
contenido.onEnterFrame = moverMc;

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
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 10:35.