Closed tudan110 closed 1 year ago
我基于 vue2,使用的版本是 1.2.9,该如何给 mesh、camera 等添加事件呢?
能否具体点,添加什么样的事件或做何种操作?
我基于 vue2,使用的版本是 1.2.9,该如何给 mesh、camera 等添加事件呢?
能否具体点,添加什么样的事件或做何种操作?
我的需求是,点击模型的各个部件,弹出提示框。 但当我拖拽模型旋转时,此时也会触发 click 事件,如果鼠标恰巧点到了模型的某个部件,也会弹出提示框,此时与期望不符。 我原本想,这种拖拽操作是不是可以添加专门的监听事件,不知道该怎么添加。 后来想到了解决办法,在 mousedown 和 mouseup 时分别记录鼠标的位置,然后在 click 事件里比对鼠标前后的位置坐标,如果不同,说明拖动了,就不弹窗了。
onMousedown(event, intersected) {
this.mousedownClient.x = event.clientX
this.mousedownClient.y = event.clientY
},
onMouseup(event, intersected) {
this.mouseupClient.x = event.clientX
this.mouseupClient.y = event.clientY
}
onClick(event, intersected) {
// 如果鼠标位置发生偏移,说明鼠标做了拖拽操作,则不弹出模型部件提示
if (this.mousedownClient.x !== this.mouseupClient.x
|| this.mousedownClient.y !== this.mouseupClient.y
|| !intersected) {
return
}
... 其他代码省略
}
我基于 vue2,使用的版本是 1.2.9,该如何给 mesh、camera 等添加事件呢?
能否具体点,添加什么样的事件或做何种操作?
我的需求是,点击模型的各个部件,弹出提示框。 但当我拖拽模型旋转时,此时也会触发 click 事件,如果鼠标恰巧点到了模型的某个部件,也会弹出提示框,此时与期望不符。 我原本想,这种拖拽操作是不是可以添加专门的监听事件,不知道该怎么添加。 后来想到了解决办法,在 mousedown 和 mouseup 时分别记录鼠标的位置,然后在 click 事件里比对鼠标前后的位置坐标,如果不同,说明拖动了,就不弹窗了。
onMousedown(event, intersected) { this.mousedownClient.x = event.clientX this.mousedownClient.y = event.clientY }, onMouseup(event, intersected) { this.mouseupClient.x = event.clientX this.mouseupClient.y = event.clientY } onClick(event, intersected) { // 如果鼠标位置发生偏移,说明鼠标做了拖拽操作,则不弹出模型部件提示 if (this.mousedownClient.x !== this.mouseupClient.x || this.mousedownClient.y !== this.mouseupClient.y || !intersected) { return } ... 其他代码省略 }
后来怎么实现的? 点击弹窗动态数据
我基于 vue2,使用的版本是 1.2.9,该如何给 mesh、camera 等添加事件呢?