添加了ScrollView 触摸事件就失效了?

cocos2dx 最新3.16版本

我的原意是对这个滑动窗口菜单进行一些触摸事件监听的操作,
但是在添加了滑动窗口之后,触摸事件就不相应了,去掉滑动窗口,触摸事件又恢复了,是怎么回事?
是被吞了么,该如何修改?

还是最新版的cocos源代码需要改动?


添加滑动窗口:

scrollView = ScrollView::create();
scrollView->setContainer(_spritesContainer);       //_spritesContainer为一个Layer
scrollView->setDirection(ScrollView::Direction::HORIZONTAL);
scrollView->setTouchEnabled(true);
scrollView->setPosition(ccp(0, 0));

scrollView->setViewSize(visibleSize);
scrollView->setContentOffset(ccp(0, 0),true);
scrollView->setContentSize(CCSize(visibleSize.width * MAP_COUNT, visibleSize.height));

scrollView->setDelegate(this);

scrollView->setBounceable(false);

addChild(scrollView);

//在此之后添加触摸相应,就失效了

auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = CC_CALLBACK_2(MapChooseScene::onTouchBegan, this);
listener->onTouchMoved = CC_CALLBACK_2(MapChooseScene::onTouchMoved, this);
listener->onTouchEnded = CC_CALLBACK_2(MapChooseScene::onTouchEnded, this);
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);

不止我一个人遇到了这个问题,需要热心人士回答一下,谢谢!

3.16好久没用了,你试试在scrollview里面setSwallowTouches为false试试

非常感谢!
已经解决了我的问题!、
3.16是官网最目前新版的呢

补充提问:
setSwallowTouches真的神奇,这个函数是怎么做到把触摸事件忽略掉的同时又能执行呢,如果scrollView忽略了触摸事件,他是怎么收集到触摸事件进而实现窗口随着触摸滚动的呢?

都没忽略,一个是继续向下传递,一个是停止传递

参考:http://docs.cocos.com/cocos2d-x/manual/zh/event_dispatcher/