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

由于此错误,我无法执行我的代码:


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>

四面体渲染.js


import * as THREE from '../lib/three.js';

// Create the scene

const scene = new THREE.Scene();

scene.background = new THREE.Color(0x2d3436);

// Set up the camera

const camera = new THREE.PerspectiveCamera(100, window.innerWidth / window.innerHeight, 0.1, 1000);

// Set up the render

const renderer = new THREE.WebGLRenderer();

renderer.setSize(window.innerWidth, window.innerHeight);

renderer.setPixelRatio(window.devicePixelRatio);

document.body.appendChild(renderer.domElement);

// Create n random tetrahedrons

const 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 white

const 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);

}


这是所有代码,但我认为问题必须在第一行导入。


我看到很多帖子都有类似的错误,但我找不到适合我的解决方案。


回首忆惘然
浏览 637回答 1
1回答

暮色呼如

Three.js 有三个输出文件:三.jsthree.js 源代码的未损坏包三分钟.js捆绑的 three.js 源代码的损坏/缩小(较小)版本三.module.jsthree.js 包的 JavaScript 模块版本您需要引用最后一个以导入 three.js 导出。复制three.module.js到您的lib文件夹中,然后:import&nbsp;*&nbsp;as&nbsp;THREE&nbsp;from&nbsp;'../lib/three.module.js';
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript