Я хотел бы остановить анимацию Three.js правильно, чтобы потом выполнить функцию.Отмена анимации в Three.js
Это код, у меня есть:
var anim;
function animate() {
anim = requestAnimationFrame(animate);
checkRotation();
renderer.render(scene, camera);
setTimeout(cancel, 10000);
}
function cancel() {
cancelAnimationFrame(anim);
finalCoords();
}
animate();
Будучи ставить так, анимация checkRotation()
действительно останавливается, но функция finalCoords()
продолжает цикл, как если бы он был пойман в ловушку в какой-то рекурсии.
Я также попытался это:
var anim;
function animate(anima) {
anima = requestAnimationFrame(animate);
checkRotation();
renderer.render(scene, camera);
}
function cancel(anima) {
cancelAnimationFrame(anima);
finalCoords();
}
animate(anim);
setTimeout(cancel(anim), 10000);
теперь останавливается петли, но функция finalCoords()
не возвращает результаты, а анимация не останавливается.
Что я сделал не так? и как я могу это исправить?
Спасибо!