用3.8.0版本做一个这样的一个需求,报酬300,
鼠标右键全局返回的操作,我在最上层加一个node,用于监听鼠标事件,现在的问题点击鼠标右键会触发下面的按钮,但如果不让穿透,鼠标左键也给屏蔽了,需求是左键能穿透,鼠标右键不穿透就 好了,或者其他方案也行,大家看下需求,能解决的来,不太明白的私聊我
可以在最上面的node上做鼠标监听事件吗
给左键的按下跟抬起加一个穿透,然后右键的按下跟抬起的穿透关掉就行了
正常是这样吧
判断点击的鼠标类型是左键还是右键然后区别修改event.preventSwallow是false或者true就行了吧
这样判断然后里面的就是event.preventSwallow修改
还好在摸鱼,这个钱我挣了
let _node = director.getScene().getComponentInChildren(Canvas).node;//这里可以替换成一个最底层的node
let useCapture = true;//注册在捕获阶段
_node.on(NodeEventType.MOUSE_UP,(event:EventMouse)=>{
if(event.getButton()==2){
console.log("鼠标右键点击")
}
},this,useCapture)
具体的做法就是将事件注册在捕获阶段,按照你的需求,猜测可以是Canvas节点。
相关文档的地址:节点事件注册在捕获阶段
能不能解决你的问题,可以的话我就私你收款码了哦
import { _decorator, Component, Node, EventMouse, input, Input } from ‘cc’;
const { ccclass, property } = _decorator;
@ccclass(‘GlobalClickListener’)
export class GlobalClickListener extends Component {
start() {
input.on(Input.EventType.MOUSE_DOWN, this.onMouseDown, this);
}
onMouseDown(event: EventMouse) {
if (event.getButton() === EventMouse.BUTTON_RIGHT) {
// 阻止事件传播,防止右键事件穿透
event.propagationStopped = true;
}
}
onDestroy() {
input.off(Input.EventType.MOUSE_DOWN, this.onMouseDown, this);
}
}
这么简单的问题,chatgtp一下就好了啊
是每人300元么?
const { _decorator, Component, Node, Vec2 } = cc;
const { ccclass, property } = _decorator;
@ccclass(‘MouseEventListener’)
export class MouseEventListener extends Component {
onLoad() {
this.node.on(Node.EventType.MOUSE_DOWN, this.onMouseDown, this);
}
onMouseDown(event) {
if (event.getButton() === 2) { // 右键点击
event.stopPropagation(); // 阻止事件穿透
this.handleRightClick();
} else if (event.getButton() === 0) { // 左键点击
// 允许左键穿透,什么都不做
}
}
handleRightClick() {
// 处理右键点击逻辑,比如全局返回操作
console.log("右键被点击,执行返回操作");
}
} gpt真好
肯定是搜过的,那么简单就好了
node层级下的ScrollView和button是左键是可以点击和滑动的,鼠标右键是不能触发的,真是像大家说的那么简单,咱也没必要发帖是不,自己做个demo测试下,可以的话加我微,
那你可以把你的需求再描述清楚一点,就字面理解,确实是个很简单的问题
已经帮大兄弟搞定了 ,红包到手了 ~
就喜欢这种,不墨迹,搞定给红包。。
多谢兄弟,给力