因为我是做微信小游戏的,这里只讨论 web-mobile 的场景哈。
假设一个地图场景上有50个角色在走动,要求每个角色都是能被点击的(点击了就弹出该角色的详情弹窗)。
常规的点击处理,是给每个角色节点绑定点击监听:
playerNode_1.on(Node.EventType.TOUCH_END, xxx);
// ...
playerNode_50.on(Node.EventType.TOUCH_END, xxx);
另一种方案是给最顶层的地图节点绑定点击监听,然后自行通过计算来得出当前的点击是否点中了其中某个角色:
mapNode.on(Node.EventType.TOUCH_END, (event: EventTouch) => {
// 计算点击位置,从而得知是否点中了其中某个角色,是的话则弹窗
});
想问下最后面的这种方案,性能上会有提升么?毕竟它减少了 49 个 .on() 的点击事件监听绑定。