cocos2d-x 3.0

类型:吐槽/bug/建议
平台: 全平台
版本: cocos2d-x v3.0 release
关键字:NewEventDispatch cocos2dx-3.0
描述:ScrollView 和 Menu 都重新创建了一个touch Event 无法自己控制 touch 事件能否继续传递

bool Menu::initWithArray(const Vector<MenuItem*>& arrayOfItems)
{
if (Layer::init())
{
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);

    return true;
}
return false;

}

void ScrollView::setTouchEnabled(bool enabled)
{
_eventDispatcher->removeEventListener(_touchListener);
_touchListener = nullptr;

if (enabled)
{
    _touchListener = EventListenerTouchOneByOne::create();
    _touchListener->onTouchBegan = CC_CALLBACK_2(ScrollView::onTouchBegan, this);
    _touchListener->onTouchMoved = CC_CALLBACK_2(ScrollView::onTouchMoved, this);
    _touchListener->onTouchEnded = CC_CALLBACK_2(ScrollView::onTouchEnded, this);
    _touchListener->onTouchCancelled = CC_CALLBACK_2(ScrollView::onTouchCancelled, this);

    _eventDispatcher->addEventListenerWithSceneGraphPriority(_touchListener, this);
}
else
{
    _dragging = false;
    _touchMoved = false;
    _touches.clear();
}

}

建议:能设置就行了