背景
threejs做业务,存在多个按钮时,为了管理各个按钮不同时触发,就不能在各个按钮做container.addEventListener
,应该在顶层统一管理。
解决方案(以click事件为例,mousemove等其他事件同理)
1、顶层建立容器统一储存事件、统一监听事件
顶层类的内部:所有事件都在handleClickEvent
里,实际container.addEventListener
执行的事件,会去找当前且被激活的事件去执行。也节省损耗,不需要一有事件需要监听就新造一个addEventListener
出来。
//事件容器
let handleClickEvent = [
{
stage: true, //表示是否激活该事件
fun: () => {
}, //事件
id: '', //事件标识
},
]
//当前触发的事件
let currentEvent
//事件容器中搜索目标事件
const findEvent = (id)