/ / Velocidade JavaScript não espere até que a animação termine - javascript, animação, tempo

JavaScript Velocity não espere até que a animação termine - javascript, animação, timing

Estou usando JavaScript com a biblioteca VelocityJSpara animar um ponteiro na tela. O que acontece é que recebo minha entrada para quantos graus tenho que girar o ponteiro com mais freqüência do que ele pode processar.

O código que tenho agora é:

function changePointer(msg){
kmh = parseInt(msg.payloadString);
degreesToTurnTo = Math.round(kmh * stapgrote);
$("#pointer").velocity({
rotateZ: degreesToTurnTo+"deg"
});
console.log(degreesToTurnTo);
}

A função está sendo chamada cerca de 5 vezes por segundo, mas 1 animação já leva cerca de meio segundo.

Então, minha pergunta é: como posso fazer um ifdeclarações que verificam se a animação anterior está pronta (para que eu possa atualizá-la novamente quando terminar). Ou como posso cancelar a animação atual e começar a próxima (esse método seria o preferido, pois estou fazendo um velocímetro).

Desde já, obrigado!

Atenciosamente, Mats de Waard

Respostas:

0 para resposta № 1

De: http://velocityjs.org/#stop

/* Prior Velocity call. */
$element.velocity({ opacity: 0 });
/* Later, midway through the call... */
$element
/* Stop animating opacity. */
.velocity("stop")
/* Animate opacity back to 1. */
.velocity("reverse");

Então, no seu caso, algo como:

$("#pointer")
.velocity("stop")
.velocity({
rotateZ: degreesToTurnTo+"deg"
});