使用replaceScene切换场景后,后面的场景的触摸事件全部失效,单独加载场景就可以正常点击

使用replaceScene切换场景后,后面的场景的触摸事件全部失效,单独加载场景就可以正常点击

你好,你指的是场景的触摸事件被取消了还是UI部分的触摸事件被取消了呢?这两个问题需要区分处理。

你好,是整个场景的触摸事件被取消了,请问怎么解决

你好,我们测试过切换场景且事件肯定是正常的,我不清楚你的设置,您能否提供代码段及实例。

CCNode *pNode = SceneReader::sharedSceneReader()->createNodeWithSceneFile(“publish/MainLayer.json”);
this->addChild(pNode);

CCComRender *pUIRender = static_cast<CCComRender*>(pNode->getChildByTag(10007)->getComponent("GUIComponent"));
cocos2d::gui::TouchGroup *pUILayer = static_cast<cocos2d::gui::TouchGroup*>(pUIRender->getNode());

UIWidget* sxlxBtn=pUILayer->getWidgetByTag(25);
sxlxBtn->addTouchEventListener(this,toucheventselector(HelloWorld::Sxlx));

void HelloWorld::Sxlx(CCObject*,TouchEventType type){
if(type==TOUCH_EVENT_ENDED)
{
CCScene *examing=exam::scene();
CCTransitionScene *tt=CCTransitionScene::create(0.1f,examing);
CCDirector::sharedDirector()->replaceScene(tt);
}
}

代码如上,即使replaceScene了HelloWorld场景,HelloWorld的所有按钮都不能点击

最后把代码改成了
CCScene *examing=new CCScene();
CCLayer *exms=exam::create();
examing->addChild(exms,0);
CCDirector::sharedDirector()->replaceScene(examing);
examing->release();
就可以了,求版主解释下呗

大哥~~~~9命~
我及使用了这种方法切换场景 到了新场景 一点击鼠标 一样崩溃!