我想在MouseMove之后检测到碰撞,所以我从三个js中实现了Raycaster,所以我得到了:无法读取未定义的属性(读取‘照相机’)
bindIFrameMousemove(iframe){
iframe.contentWindow.addEventListener('mousemove', function(event) {
const mouse = new Vector2();
var clRect = iframe.getBoundingClientRect();
var evt = new CustomEvent('mousemove', {bubbles: true, cancelable: false});
const clientX = (window.TouchEvent && event instanceof TouchEvent) ?
event.changedTouches[0].clientX : event.clientX;
const clientY = (window.TouchEvent && event instanceof TouchEvent) ?
event.changedTouches[0].clientY : event.clientY;
const x = ( clientX / window.innerWidth ) * 2 - 1;
const y = - ( clientY / window.innerHeight ) * 2 + 1;
iframe.dispatchEvent(evt);
event.preventDefault();
mouse.x= ( clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( clientY / window.innerHeight ) * 2 + 1;
Raycaster.setFromCamera( mouse, this.context.camera );
const intersects = Raycaster.getIntersectObjects(this.scene.children ,true );
console.log(intersects)
if (intersects.length > 0) {
console.log("intersects !!");
}
});};
发布于 2022-08-17 06:31:03
this.context
是undefined
,因为this
不是全局this
。你应该在谷歌上搜索差异。要解决问题,您应该使用箭头函数。
iframe.contentWindow.addEventListener('mousemove',(event) => {
https://stackoverflow.com/questions/73390201
复制