-
先说使用场景
引擎版本3.5.2。一个带有可拖动地图的游戏,ui和地图分属不同的摄像头(地图摄像机priority更低),有时候会在ui层弹出一些小提示,希望在点击某些按钮或者拖动地图的时候隐藏这些小提示 -
需求就是:
想在触摸事件(包含鼠标点击和手指触摸)发生了之后进行一些处理,而不影响原本游戏的任何事件传递逻辑
官方有两种处理方式
一种是用useCapture参数让Canvas注册触摸事件到捕获阶段
另一种是event.preventSwallow = true
这两种方式都会导致priority更低的地图摄像机无法接收到触摸事件
我现在临时的处理办法是在priority更高的ui摄像机下创建一个最高层级的节点node,然后
node.eventProcessor._handleEventTouch = ()=>{/* do something*/return false}
node.on(Node.EventType.TOUCH_START,()=>{})
这样就能让这个节点忽略任何触摸事件,还能知道触摸事件发生了
但是eventProcessor被标记从3.4.0废弃了
那官方有没有推荐一种更优雅的实现方式呢