Una función de aceleración le permite interpolar valores de un valor a otro durante un intervalo dado usando algo llamado "función de aceleración". Estas son funciones que están diseñadas para tomar un valor y, en cualquier punto dado del intervalo, emitir el valor en un determinado momento.
Esto se puede explicar mejor observando un fragmento de código:
// simple linear tweening - no easing, no acceleration
Math.linearTween = function (t, b, c, d) {
return c*t/d + b;
};
@t es la hora actual (o posición) de la interpolación. Pueden ser segundos o cuadros, pasos, segundos, ms, lo que sea, siempre que la unidad sea la misma que la utilizada durante el tiempo total.
@b es el valor inicial de la propiedad.
@c es el cambio entre el valor inicial y de destino de la propiedad.
@d es el tiempo total de la interpolación.
Gracias, http://upshots.org/actionscript/jsas-understanding-easing
Esta es la definición de una función de aceleración lineal. Graficando esto a lo largo del tiempo en términos de 't' obtenemos un simple gráfico lineal.
De acuerdo, genial. ¿Para qué podemos usarlos?
Cada vez que tenga en mente un comienzo y un final y desee animarlos, puede usar una "interpolación" o "función de relajación".
Por ejemplo, aquí hay un GIF que acabo de tomar de Angry Birds:
¿Notó que el menú se desliza hacia el punto en la pantalla, pero se detiene lentamente? Esto se debe a una función de relajación que se acomoda en su lugar. Puedes verlos en toda la web. Si esto fuera una facilidad lineal, sería lo mismo en todas partes.
¿Música?
¡Seguro! Si tomamos el valor de nuestro valor de banda sonora actual y lo interpolamos entre eso y 0 en un total de t de 1 segundo, entonces nuestro volumen se desvanecerá lentamente durante un período de un segundo.
Objetos delimitadores
También hay funciones que permiten el rebote (ver: http://easings.net/#easeOutBounce ) que pueden producir efectos como este en un sprite sin ningún sistema físico:
Puede encontrar más información en la web buscando interpolaciones.