笨木头  2014-07-29 20:55     Cocos2d-x3.0     阅读(9262)     评论(0)
转载请注明,原文地址: http://www.benmutou.com/archives/1624
文章来源:笨木头与游戏开发
我印象中是写过这篇文章的,可能我记忆错乱了吧,今天刚好论坛有人提出来,就顺便做一下记录~

 



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

转载请注明,原文地址: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了。

 
0 条评论
发表评论
粤ICP备16043700号

本博客基于 BlazorAnt Design Blazor 开发