Subscribe to RSS Feed

Subscribe to Comments Feed

Subscribe to Atom Feed

Soportalo

Otro blog más de WordPress
  • Información

Mover Objeto deslizandoze (easing) en Flash

por admin Etiquetas: Flash, Programacion
19 02 2009

En este tema les voy a mostrar  una función que permite mover los objetos con efecto easing de autoría original de solislarg (moderador del difunto nomaster.com) modificada a mi gusto.

El código es el siguiente:

Código :

function Mover(x,y, aceleracion) {
          NombreInstanciaClip.onEnterFrame = function() {
          this._x += (x-this._x)/aceleracion;
          this._y += (y-this._y)/aceleracion;

         if (Math.abs(x-this._x)<0.5 && Math.abs(y-this._y)<0.5 ) {
                 this._x = x; 

                 this._y = y;
                 delete this.onEnterFrame; 

           }
};
}

¿Cómo funciona? bueno, pues es bastante sencillo solo necesita tres parámetros, columna, fila, y aceleración, la columna y la fila es la posición final hacia la cual queramos que vaya este clip, lo interesante aquí es la aceleración. En que se basa, no es otra cosa mas que los puntos intermedios para llegar a ese punto dividiendo la distancia en varios tramos para hacer la animación fluida, (entre mas puntos, más fluido, pero mas lento)

Código :

NombreInstanciaClip.onEnterFrame = function() {

Aquí cuando mandamos a llamar a la función, se le asigna al clip un enterframe para que realicé la función en cada iteración, se podría asignar el nombre del clip desde los parámetros, pero lo hago así para que sea más entendible,

Después

Código :

this._x += (x-this._x)/aceleracion; 

          this._y += (y-this._y)/aceleracion;

Esto es lo que hace el efecto, en cada iteración divide la distancia final, entre la actual, entre el numero de iteraciones y asigna las nuevas coordenadas a el clip

Código :

if (Math.abs(x-this._x)<0.5 && Math.abs(y-this._y)<0.5 ) {
        this._x = x; 

        this._y = y;
        delete this.onEnterFrame;
}

Esta parte lo único que hace es verificar que la coordenada de el clip tanto x como y no sean menores a 0.5 de diferencia respecto a la coordenada final por que una ves siendo menor, las iteraciones se pueden volver infinitas o mino muy tardadas, por eso en cuanto detecta esa diferencia, asigna las coordenadas finales a el clip y borra este enterframe para que ya no se siga moviendo

Si te sirvio este post y quieres divertirte un poco ahora da click aqui y Visita Soportalo.com Post nuevos todos los dias

3 commentario/s

3 Respuestas to “Mover Objeto deslizandoze (easing) en Flash”

  1. Soportalo - Efecto Acercar (zoom ) en Flash dice:
    21 Febrero 2009 en 21:48

    [...] porción de código es parte de este tip con la diferencia que incrementa dos variables más, ancho y alto, las cuales se encargarán de [...]

  2. Yair dice:
    25 Marzo 2009 en 13:37

    No tienes un ejemplo, para saber como funcionaria??

  3. Tiza dice:
    26 Junio 2010 en 17:32

    mmmm esta muy incompleto, faltan los archivos de ejemplo y demas…

Dejar una respuesta

Clic para cancelar respuesta.

Credits &Trad: Bingo, c10