OrbitControls.js
代码实现
OrbitControls.js空间支持鼠标左中右键操作和键盘方向键操作。
1 | function render() { |
OrbitControls.js提供了一个OrbitControls构造函数,把一个相机对象作为参数的时候,执行代码new THREE.OrbitControls(camera,renderer.domElement)时,浏览器会自动检测鼠标键盘的变化,并根据鼠标和键盘的变化更新相机对象的参数并进行渲染。
执行OrbitControls构造函数浏览器会同时做两件事,一是给浏览器定义了一个鼠标、键盘事件,自动检测鼠标键盘的变化,如果变化了就会自动更新相机的数据,执行该构造函数同时会返回一个对象,可以给该对象添加一个监听事件,只要鼠标或键盘发生了变化,就会触发渲染函数。
注意
如果threejs代码中通过requestAnimationFrame()实现渲染器渲染方法render()的周期性调用,当通过OrbitControls操作改变相机状态的时候,没必要在通过controls.addEventListener('change', render)监听鼠标事件调用渲染函数,因为requestAnimationFrame()就会不停的调用渲染函数。
1 | function render() { |