html - 三.js OrbitControls 不工作,控件未定义
问题描述
当我注释掉这条线时,我有一个没有控件的工作示例。
//controls = new THREE.OrbitControls( camera, renderer.domElement );
但是当我尝试使用 OrbitControls 时,日志会告诉我以下信息:
(index):21 Uncaught ReferenceError: controls is not defined
at (index):21
我的内容index.html
:
<html>
<head>
<title>My first three.js app</title>
<style>
body { margin: 0; }
canvas { width: 100%; height: 100% }
</style>
</head>
<body>
<script src="js/three.js"></script>
<script src="js/OrbitControls.js"></script>
<script type="module">
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
controls = new THREE.OrbitControls( camera, renderer.domElement );
var geometry = new THREE.SphereGeometry( 1, 64, 64 );
var material = new THREE.MeshBasicMaterial( {color: 0x00ff00 } );
var sphere = new THREE.Mesh( geometry, material );
scene.add( sphere );
camera.position.z = 5;
var animate = function () {
requestAnimationFrame( animate );
renderer.render( scene, camera );
};
animate();
</script>
</body>
</html>
解决方案
您必须像这样创建控件:
var controls = new THREE.OrbitControls( camera, renderer.domElement );
缺失var
导致提到的运行时错误。
推荐阅读
- c++ - Mac OS 上的 C++ vcxproj 和 sln
- javascript - 不和谐 JS | MYSQL 从 mysql 表中读取
- spring-boot - Kafka 客户(消费者/生产者)宕机后恢复
- python - 在数据框行和列名中转换为日期时间时的不同输出(Pandas - Python)
- ns-3 - 如何在 ns3 模拟器上运行高斯马尔可夫移动模型?
- mysql - MySQL使用数组更新多行
- python - 尝试向 Discord 服务器发送新连接
- python - 如何向内置对象添加/修改方法?
- mysql - Excel 中的批量更新查询不起作用
- r - 如何根据两个数据框中另一列中的值对列求和?