【发布时间】:2012-07-04 04:51:34
【问题描述】:
以下是我想出的。想知道是否有更简单的方法来做到这一点。
假设我只希望菜单层在启动时是可触摸的。
我放置了会吞下触摸的隐形层。
bool tNoTouchLayer::init()
{
if(!CCLayer::init()) {
return false;
}
setIsTouchEnabled(true);
return true;
}
void tNoTouchLayer::registerWithTouchDispatcher()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
}
bool tNoTouchLayer::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
return true;
}
现在我可以在添加菜单层之前添加 noTouchLayer,所有的触摸都会被 noTouchLayer 窃取。
【问题讨论】:
-
其实,看不懂,你想干什么……
-
相同。不能简单地使用 setIsTouchEnabled(false) 禁用触摸吗?
-
如何显示一个小于屏幕尺寸且可触摸的弹出菜单,从而禁用对其他区域的触摸?
-
假设您的菜单层是主层的子层。在你的菜单层覆盖 onEnter() 并调用 ((CCLayer*)(this->getParent()))->setIsTouchEnabled(false),它会工作吗?
-
如果我的任何答案都可以接受/好,请您接受/点赞吗?
标签: cocos2d-iphone touch cocos2d-x