由于此错误,我无法执行我的代码:TypeError: THREE.Scene is not a constructor我使用来自官方 github 存储库的 three.js 文件,这是我的文件:索引.html<html><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="../style.css"> <title>First three.js</title></head><body> <script type="module" src="../frontend/tetrahedrons_render.js"></script></body></html>四面体渲染.jsimport * as THREE from '../lib/three.js';// Create the sceneconst scene = new THREE.Scene();scene.background = new THREE.Color(0x2d3436);// Set up the cameraconst camera = new THREE.PerspectiveCamera(100, window.innerWidth / window.innerHeight, 0.1, 1000);// Set up the renderconst renderer = new THREE.WebGLRenderer();renderer.setSize(window.innerWidth, window.innerHeight);renderer.setPixelRatio(window.devicePixelRatio);document.body.appendChild(renderer.domElement);// Create n random tetrahedronsconst n = Math.floor(Math.random() * 7) + 2;const tetrahedrons = [];const positions = [];let x, y;for (let i = 0; i < n; i++) { do { x = Math.floor(Math.random() * 10) - 5; y = Math.floor(Math.random() * 10) - 5; } while ([x, y] in positions); positions.push([x, y]); tetrahedrons.push(createTetrahedron(x * 2.5, y * 2.5));}// Color one random tetrahedron in black and another in whiteconst i = Math.floor(Math.random() * tetrahedrons.length);let i2;do { i2 = Math.floor(Math.random() * tetrahedrons.length);} while (i2 === i);tetrahedrons[i].geometry.faces.forEach((face) => { face.color = new THREE.Color('black');});tetrahedrons[i2].geometry.faces.forEach((face) => { face.color = new THREE.Color('white');});camera.position.z = 15;function animate() { requestAnimationFrame(animate); // Rotation tetrahedrons.forEach((tetrahedron) => { tetrahedron.rotation.x += 0.03; tetrahedron.rotation.y -= 0.03; }); renderer.render(scene, camera);}这是所有代码,但我认为问题必须在第一行导入。我看到很多帖子都有类似的错误,但我找不到适合我的解决方案。
1 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
Three.js 有三个输出文件:
三.js
three.js 源代码的未损坏包
三分钟.js
捆绑的 three.js 源代码的损坏/缩小(较小)版本
三.module.js
three.js 包的 JavaScript 模块版本
您需要引用最后一个以导入 three.js 导出。复制three.module.js
到您的lib
文件夹中,然后:
import * as THREE from '../lib/three.module.js';
添加回答
举报
0/150
提交
取消