我用的是cocos3.6的版本,最近学习了一下事件的源码,暂且有碰到三个让我不是理解的问题;
1:在EventDispatcher中,定义了多个map,其中key都是listenerid,那么这个listenerid有什么作用,我看EventListener里有类型这个属性,用这个做key不行么。
2:在Layer中,设置吞噬事件,为什么是这样?
void Layer::setSwallowsTouches(bool swallowsTouches)
{
if (_swallowsTouches != swallowsTouches)
{
_swallowsTouches = swallowsTouches;
if( _touchEnabled)
{
setTouchEnabled(false);
setTouchEnabled(true);
}
}
}
先设置了开启为false,然后又设置为true?这里是误写还是别有用心?
3:对于吞噬事件
void Layer::setSwallowsTouches(bool swallowsTouches)
void EventListenerTouchOneByOne::setSwallowTouches(bool needSwallow)
void Widget::setSwallowTouches(bool swallow)
layer的方法名称和其他的不同,这个是不规范的写法还是本身功能就不一致呢?
希望有人授业解惑,谢谢!