难道cocos2d-x 3.3有bug??

场景:
layer1上面是layer2,layer2上面是一个menu

现象:
触摸menu上的按钮之后,该触摸动作会继续被传下去(按说这个menu不应该吞没了这个触摸事件吗?),导致layer1响应了这个触摸事件。

于是我回到cocos的源代码,看到menu创建中的这段:

        auto touchListener = EventListenerTouchOneByOne::create();
        touchListener->setSwallowTouches(true);
        
        touchListener->onTouchBegan = CC_CALLBACK_2(Menu::onTouchBegan, this);
        touchListener->onTouchMoved = CC_CALLBACK_2(Menu::onTouchMoved, this);
        touchListener->onTouchEnded = CC_CALLBACK_2(Menu::onTouchEnded, this);
        touchListener->onTouchCancelled = CC_CALLBACK_2(Menu::onTouchCancelled, this);
        
        _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
```


onTouchBegan是这么定义的:
bool Menu::onTouchBegan(Touch* touch, Event* event)
{
    if (_state != Menu::State::WAITING || ! _visible || !_enabled)
    {
        return false;
    }
    
    for (Node *c = this->_parent; c != nullptr; c = c->getParent())
    {
        if (c->isVisible() == false)
        {
            return false;
        }
    }
    
    _selectedItem = this->getItemForTouch(touch);
    if (_selectedItem)
    {
        _state = Menu::State::TRACKING_TOUCH;
        _selectedItem->selected();
        
        return true;
    }
    
    return false;
}
```


可见menu在创建时是设置了事件吞并的,可事实却是我的程序中,触摸事件继续被传下去了!!

不知道是什么原因,不知道版里有没有遇到类似问题的大神?

PS:我的代码是基于lua-binding写的

自己补充下吧:
我的menuItem在收到触摸事件后,做的事情是:把layer2从layer1上remove掉。

因此导致触摸事件被传递到layer1。我猜是这样的