为了账号安全,请及时绑定邮箱和手机立即绑定

Three.js 错误 --> THREE.Scene 不是构造函数

Three.js 错误 --> THREE.Scene 不是构造函数

回首忆惘然 2022-06-16 17:20:45
由于此错误,我无法执行我的代码: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';


查看完整回答
反对 回复 2022-06-16
  • 1 回答
  • 0 关注
  • 636 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信