【发布时间】:2014-06-25 22:17:12
【问题描述】:
我有一个main layer 应该获得触摸事件。但是在该层上有一个navigation bar,其中包含按钮和其他精灵,并且是cocos2d::Sprite 的子类。现在我需要所有对navigation bar 的触摸都不会被解释为对main layer 的触摸。按钮工作正常,但navigation bar sprite 将触摸传递给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,但它没有帮助。解决办法在哪里?
【问题讨论】:
标签: c++ cocos2d-x cocos2d-x-3.0