Hola
Creo que estás utilizando un intervalo muy pequeño (5 milesimas), esto seguro que provoca irregularidades en la ejecución. Y justamente, una de ellas es la diferencia de velocidad.
Para solventarlo deberías utilizar intervalos más amplios y regular estos según se avanza o retrocede.
Algo así:
Código PHP:
function mover(frame) {
clearInterval(inte);
trace(frame);
frame = Number(frame);
if (frame>_currentframe) {
lado = "der";
t=50;
} else {
lado = "izq";
t=20;
}
inte = setInterval(mueve, t);
function mueve() {
clearInterval(a);
if (frame<>_currentframe) {
if (lado == "izq") {
prevFrame();
} else {
nextFrame();
}
} else {
}
updateAfterEvent();
}
}
Un saludo