我正在使用Three.js制作3D应用程序。在此应用程序中,我需要带有摄像机的控制系统。我正在为此控制系统使用TrackballControlls。但是,当我添加事件侦听器时,出现了一个奇怪的错误:Unable to preventDefault inside passive event listener due to target being treated as passive.
,其中包含一个指向以下内容的链接:this chromium website
我了解该错误,但是是否有解决此错误的方法?此错误来自以下行:event.preventDefault();
某些代码:
var control = new THREE.TrackballControls(camera);
control.addEventListener("change", render);
function render() {
renderer.render(scene, camera);
}
function update() {
renderer.render(scene, camera);
control.update();
requestAnimationFrame(update);
}
我希望有人能够帮助我。预先感谢!
答案 0 :(得分:1)
var control = new THREE.TrackballControls(camera);
请始终像这样创建TrackballControls
:
var control = new THREE.TrackballControls(camera, renderer.domElement);
有一个新的PR,它将使TrackballControls
的第二个参数成为必需参数,并阻止document
作为参数。
https://github.com/mrdoob/three.js/pull/17612
three.js R109
答案 1 :(得分:1)
此消息是警告。这不会伤害Web应用程序。
但这有点烦人。您可以使用以下方法关闭此警告:
而不是使用它:
control.addEventListener("change", render);
将其放入代码内:
control.addEventListener("change", render, { passive: false });