Uma função de atenuação permite interpolar valores de um valor para outro em um determinado intervalo usando algo chamado "função de atenuação". Essas são funções projetadas para obter um valor e, em qualquer ponto do intervalo, produzir o valor em um determinado momento.
Isso pode ser melhor explicado examinando um trecho de código:
// simple linear tweening - no easing, no acceleration
Math.linearTween = function (t, b, c, d) {
return c*t/d + b;
};
@t é a hora atual (ou posição) da interpolação. Podem ser segundos ou quadros, etapas, segundos, ms, o que for - desde que a unidade seja a mesma usada durante o tempo total
@b é o valor inicial da propriedade.
@c é a alteração entre o valor inicial e o destino da propriedade.
@d é o tempo total da interpolação.
Obrigado, http://upshots.org/actionscript/jsas-understanding-easing
Esta é a definição de uma função de flexibilização linear. Fazendo um gráfico disso ao longo do tempo em termos de 't', obtemos um mero gráfico linear.
OK fixe. Para que podemos usá-los?
Sempre que você tiver um começo e um final em mente e quiser animá-los, poderá usar uma "interpolação" ou "função de alívio".
Por exemplo, aqui está um GIF que eu peguei do Angry Birds:
Observe o menu deslizando para o ponto da tela, mas para lentamente? Isso ocorre devido a uma função de facilitação que se encaixa no lugar. Você pode ver aqueles em toda a web. Se isso fosse uma facilidade linear, seria o mesmo por toda parte.
Música?
Certo! Se pegarmos o valor do nosso valor atual da trilha sonora e o interpolarmos entre esse e 0 em um total de t digamos, 1 segundo, então nosso volume diminuirá lentamente durante um período de um segundo.
Objetos delimitadores
Também existem funções que permitem saltar (consulte: http://easings.net/#easeOutBounce ) que podem produzir efeitos como esse em um sprite sem nenhum sistema de física:
Você pode encontrar mais informações na web pesquisando interpolação.