cocos2dx 3.2 Layer触屏没反应

Scene* DisplayLayer::createScene(int id)
{
auto scene = Scene::create();

auto layer = DisplayLayer::create();
layer->setID(id);
scene->addChild(layer);

return scene;

}

bool DisplayLayer::init()
{
if(!Layer::init())
return false;

root = GUIReader::getInstance()->widgetFromJsonFile(“Main_Layer.ExportJson”);
videoLayout = dynamic_cast<Layout*>(Helper::seekWidgetByName(root, “video_layers”));

winsize = Director::getInstance()->getWinSize();
setContentSize(winsize);

initTopContainer();
initPlaySelectButtons();
initOptionPanel();

createVideo();
scheduleOnce(schedule_selector(DisplayLayer::onStandByMain), 0.4f);

addChild(root);

return true;
}

void DisplayLayer::onEnter()
{
Layer::onEnter();

auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);

listener->onTouchBegan = CC_CALLBACK_2(DisplayLayer::onTouchBegan, this);
listener->onTouchMoved = CC_CALLBACK_2(DisplayLayer::onTouchMoved, this);
listener->onTouchEnded = CC_CALLBACK_2(DisplayLayer::onTouchEnded, this);

_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
}

bool DisplayLayer::onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *unused_event)
{
CCLOG(“111111111111111”);

return true;
}

void DisplayLayer::onTouchMoved(cocos2d::Touch *touch, cocos2d::Event *unused_event)
{
CCLOG(“222222222222222”);
}

void DisplayLayer::onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *unused_event)
{
CCLOG(“333333333”);
}

上代码,点击为什么什么反应也没有 我哪里错了吗?:8::8::8::8::8::8:

是不是你的Touch 被 吞噬了啊?

把这些注释掉 一步步,排除喽!
initTopContainer();
initPlaySelectButtons();
initOptionPanel();
createVideo();
scheduleOnce(schedule_selector(DisplayLayer::onStandByMain), 0.4f);

root大小有多大,如果和你layer一样大,肯定会吞噬掉消息,你可以把root的zorder设置成-1试试

或者把root的交互属性去掉

确实是这样的,被root档掉了,谢谢啊

你应该是用了VideoPlayer控件吧