图层事件的问题。求赐教

  • 本帖最后由 PollyYeung 于 2012-8-29 17:01 编辑 *

我在一个layer添加一个CCMenu,然后又添加了一个CCLayerColor,CCLayerColor在CCMenu之上。CCLayerColor我设置成了半透明了的。按理说CCLayerColor盖在了CCMenu之上。但是依然能触发CCMenu的触屏事件。我想要的是做一个dialog的。但是能触发之后的层的事件的法,就达不到效果了。

求赐教

— Begin quote from ____

PollyYeung 发表于 2012-8-29 17:06 url

这论坛太TMD冷清了。
算了。我看了下CCMenu的代码。找到答案了。自己来回答

— End quote

ding!!!

— Begin quote from ____

iniwap 发表于 2012-8-30 13:04 url

我现在遇到的就是这个恶心的问题。。。。而且是下面的被触发 上面的没反应。。。我日了。。。网上都说只跟 …

— End quote

请参阅源码, 有时候这些不是一两句话就可以解释的, 不然也不叫引擎了不是吗?

— Begin quote from ____

iniwap 发表于 2012-8-30 09:40 url

问下。如果我是两个menu呢?一上一下,如何阻止下面的被触发?

— End quote

它已经做了这种处理的。你试下就知道了

— Begin quote from ____

PollyYeung 发表于 2012-8-29 17:06 url

这论坛太TMD冷清了。
算了。我看了下CCMenu的代码。找到答案了。自己来回答

— End quote

问下。如果我是两个menu呢?一上一下,如何阻止下面的被触发?

这论坛太TMD冷清了。
算了。我看了下CCMenu的代码。找到答案了。自己来回答

我是继承的CCLayerColor,然后重写的virtual void registerWithTouchDispatcher();这个函数
内容就一段代码
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, kCCMenuHandlerPriority, true);
然后在重写virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);
return isVisible();

就改了这两个地方。OK。在这之下的层就点不到了