後で機能を実行するために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()
は正しい結果を返さないと、アニメーションが停止しません。
どうしたのですか?どうすれば修正できますか?
ありがとうございます!