0

我使用 cocos2d-x 3.0 RC1,我需要以下内容:最顶层应该获取所有事件,并且不应将事件传播到最顶层以下的层。我不知道我该怎么做。我试图找出结果为空的setTouchEnabled东西setSwallowTouches

请帮忙。这个非常重要。

4

1 回答 1

0

我发现的唯一方法是实现这一点:

auto m_touchListenerOneByOne = EventListenerTouchOneByOne::create();
m_touchListenerOneByOne->setSwallowTouches(true);
m_touchListenerOneByOne->onTouchBegan = CC_CALLBACK_2(IntroView::onBoardTouchBegan, this);

_eventDispatcher->addEventListenerWithSceneGraphPriority(m_touchListenerOneByOne, this);

上面的代码是我在层的init方法中写的。还有这个:

bool IntroView::onBoardTouchBegan(Touch* touch, Event* event)
{
    CCLOG("AAAAAAAAA!");
    return true;
};

当您在onBoardTouchBegan“消费”触摸中返回 true 时,否则如果层不消费触摸,则这些触摸将按优先级传递到下一层。

于 2014-04-23T21:12:02.140 回答