加载Cocostudio的UI之后,下方按钮无法点击的解决方法

笨木头  2014-07-29 20:55   Cocos2d-x3.0   阅读(7,385)   0条评论

我印象中是写过这篇文章的,可能我记忆错乱了吧,今天刚好论坛有人提出来,就顺便做一下记录~

 

笨木头花心贡献,哈?花心?不,是用心~

转载请注明,原文地址:http://www.benmutou.com/archives/1624

文章来源:笨木头与游戏开发

 

Cocostudio的UI从某个版本开始,默认会屏蔽下方的触摸事件,换句话说,当我们加载了某个UI之后,UI下面的东西(按钮、图片等等)都无法响应点击。

其实这没什么神奇的,只不过是UI默认有一个画布,画布也是一个控件,类似Layer,它也会监听触摸事件,并且是吞并模式的。

一旦UI获取到触摸事件,那么,其他人就没法获得触摸事件了。

 

有两种方式解决(都很简单完美):

1. 在Cocostudio的UI编辑器里做手脚,设置顶层的Panel属性,把“交互”前面的勾去掉(推荐)

这个顶层Panel可能一般情况下大家都会视而不见,如图:

图片:对象结构Panel

这就是UI默认的画布,选中它,然后在Panel的属性面板里找到“交互”属性,把前面的勾去掉,如图:

图片:Panel交互属性

 
2. 在代码里处理,加载UI后,直接调用UI的setTouchEnabled(false);就可以了,这样UI顶层画布就不会监听到触摸事件了。

 

其实这种默认的吞并触摸是一件好事,因为大部分情况下,我们在显示一个UI时,不会希望UI下面的对象还能被点击。

当然,也有特殊情况,特殊情况就按上面说的处理就OK了。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注