Skip to content
This repository was archived by the owner on Nov 22, 2022. It is now read-only.

Commit f38b103

Browse files
author
Lucas Crane
authored
cancel animation frame on model change (#49)
1 parent 70fa919 commit f38b103

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

scenes/sample-models/main.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,15 @@ function resize() {
8787
}
8888
}
8989

90+
let animationFrameId;
91+
9092
const tick = () => {
9193
controls.update();
9294
camera.focus = controls.target.distanceTo(camera.position);
9395
stats.begin();
9496
renderer.render(scene, camera);
9597
stats.end();
96-
requestAnimationFrame(tick);
98+
animationFrameId = requestAnimationFrame(tick);
9799
};
98100

99101
function load(loader, url) {
@@ -231,11 +233,13 @@ async function init() {
231233
.name('env map');
232234

233235
modelController.onChange(async (value) => {
234-
selectModelFromName(value)
236+
cancelAnimationFrame(animationFrameId);
237+
selectModelFromName(value);
235238
});
236239

237240
envMapController.onChange(async (value) => {
238-
selectEnvMapFromName(value)
241+
cancelAnimationFrame(animationFrameId);
242+
selectEnvMapFromName(value);
239243
});
240244

241245
THREE.DefaultLoadingManager.onLoad = tick;

0 commit comments

Comments
 (0)