【发布时间】:2015-06-17 09:50:11
【问题描述】:
我在场景中添加了一个子层。我希望当我触摸此子层上的任何精灵时,触摸不会转到父层。 我为注册触摸事件编写了以下代码,但触摸仍会转到父层,而不是从父层返回。
void onEnter()
{
Layer::onEnter();
// Register Touch Event
auto dispatcher = Director::getInstance()->getEventDispatcher();
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = CC_CALLBACK_2(onTouchBegan, this);
listener->onTouchMoved = CC_CALLBACK_2(onTouchMoved, this);
listener->onTouchEnded = CC_CALLBACK_2(onTouchEnded, this);
dispatcher->addEventListenerWithSceneGraphPriority(listener, _cancelLayer);
}
这里 _cancelLayer 是我的子层的名称。请有人告诉这段代码有什么问题?我没有向父层注册任何触摸事件,但是当我触摸父层时,它仍然会进入触摸功能。
注意:子层的大小远小于父层。
在 touchBegin 中我什么也没做,我只是想用它来限制触摸移动到父层。
bool HeaderTableView::onTouchBegan(Touch *pTouch, Event *pEvent)
{
return true;
}
【问题讨论】:
标签: c++ ios cocos2d-x event-listener