Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| js:wrap_lazy-fbx [2026/07/21 17:18] – avillepreux | js:wrap_lazy-fbx [2026/07/21 17:27] (Version actuelle) – avillepreux | ||
|---|---|---|---|
| Ligne 85: | Ligne 85: | ||
| function loadViewer(viewers, | function loadViewer(viewers, | ||
| | | ||
| - | | + | |
| - | + | ||
| - | var input_path = container.textContent; | + | |
| var src_path | var src_path | ||
| var basename | var basename | ||
| Ligne 118: | Ligne 116: | ||
| container.innerHTML = ""; | container.innerHTML = ""; | ||
| container.appendChild(viewer.renderer.domElement); | container.appendChild(viewer.renderer.domElement); | ||
| - | |||
| - | console.log(viewer.renderer.domElement); | ||
| Ligne 151: | Ligne 147: | ||
| viewer.fbxObject = null; | viewer.fbxObject = null; | ||
| viewer.mixer | viewer.mixer | ||
| - | |||
| - | console.log(" | ||
| viewer.loader.load( | viewer.loader.load( | ||
| Ligne 175: | Ligne 169: | ||
| const box = new THREE.Box3().setFromObject(object); | const box = new THREE.Box3().setFromObject(object); | ||
| const size = box.getSize(new THREE.Vector3()); | const size = box.getSize(new THREE.Vector3()); | ||
| - | |||
| - | console.log(" | ||
| if (size.length() > 0) { | if (size.length() > 0) { | ||
| Ligne 199: | Ligne 191: | ||
| } else { | } else { | ||
| - | console.warn(" | + | console.warn(" |
| // Keep the original camera | // Keep the original camera | ||
| Ligne 215: | Ligne 207: | ||
| }, | }, | ||
| (error) => { | (error) => { | ||
| - | console.error(" | + | console.error(" |
| } | } | ||
| ); | ); | ||
| - | + | viewer.animationFrame = null; | |
| - | function animate() { | + | |
| - | requestAnimationFrame(animate); | + | |
| viewer.controls.update(); | viewer.controls.update(); | ||
| viewer.renderer.render(viewer.scene, | viewer.renderer.render(viewer.scene, | ||
| - | } | + | }; |
| - | animate(); | + | |
| window.addEventListener(' | window.addEventListener(' | ||
| Ligne 285: | Ligne 277: | ||
| function destroyViewer(viewers, | function destroyViewer(viewers, | ||
| - | console.log(" | ||
| - | | ||
| var viewer = viewers.get(container); | var viewer = viewers.get(container); | ||
| + | |||
| // Stop controls events | // Stop controls events | ||
| Ligne 295: | Ligne 286: | ||
| // Stop animations | // Stop animations | ||
| + | | ||
| + | cancelAnimationFrame(viewer.animationFrame); | ||
| + | viewer.animate = null; | ||
| + | | ||
| if (viewer.mixer && viewer.fbxObject) { | if (viewer.mixer && viewer.fbxObject) { | ||
| viewer.mixer.stopAllAction(); | viewer.mixer.stopAllAction(); | ||
| Ligne 338: | Ligne 333: | ||
| document.addEventListener(" | document.addEventListener(" | ||
| + | | ||
| + | | ||
| + | document.querySelectorAll(" | ||
| + | | ||
| + | wrap_scene.setAttribute(" | ||
| + | wrap_scene.innerHTML = ""; | ||
| + | | ||
| + | }); | ||
| + | | ||
| const viewers = new WeakMap(); | const viewers = new WeakMap(); | ||