0

嘿,我有简单的层,然后我有第二层,即弹出窗口
,当我创建弹出窗口时,当我触摸它时,它是层,触摸从最顶层渗透到它下面的层。
我怎么能防止它,所以当弹出窗口在顶部时,下面的所有层都是不可触摸的,这是弹出窗口中的触摸代码

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


    auto listener = EventListenerTouchAllAtOnce::create(); 

    listener->onTouchesBegan = CC_CALLBACK_2(PopupLayerObj::onTouchesBegan, this);
    listener->onTouchesMoved = CC_CALLBACK_2(PopupLayerObj::onTouchesMoved, this);
    listener->onTouchesEnded = CC_CALLBACK_2(PopupLayerObj::onTouchesEnded, this);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
}
4

1 回答 1

0

我认为您使用的是 Cocos2DX 3.0 版本。根据我尝试给出的解决方案,我正在使用 cocos2DX 2.2.1。

  • 覆盖 CCLayer 的“registerWithTouchDispatcher”方法。
  • 那里指定视图的优先级。CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, kHIGHEST_TOUCH_PRIORITY, true);
  • kHIGHEST_TOUCH_PRIORITY 指定优先级。最低值具有最高优先级。
  • 完成弹出窗口后,请写下此内容。CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
于 2014-03-31T05:50:57.813 回答