У меня есть main layer
, который должен получать события касания. Но на этом слое есть navigation bar
, в котором есть кнопки и другие спрайты, и он является подклассом cocos2d::Sprite
. Теперь мне нужно, чтобы все касания на navigation bar
не интерпретировались как касания на main layer
. Кнопки работают корректно, но navigation bar
спрайт пропускает касания к main layer
. Я сделал это, чтобы предотвратить прохождение событий:
auto touchListenerOneByOne = EventListenerTouchOneByOne::create();
touchListenerOneByOne->setSwallowTouches(true);
touchListenerOneByOne->onTouchBegan = CC_CALLBACK_2(NavigationBar::onBoardTouchBegan, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(touchListenerOneByOne, this);
bool NavigationBar::onBoardTouchBegan(Touch* touch, Event* event)
{
CCLOG("Navigation sprite is touched......!");
return true;
}
Это препятствует прохождению, но блокирует — поглощает все касания. Теперь я не могу передать касание main layer
, даже если не касаюсь navigation bar
. Я пытался использовать setContentSize
, но это не помогает. Где решение?