首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

cocos2d-x平添触摸层阻止后端事件

2014-06-02 
cocos2d-x添加触摸层阻止后端事件由于cocos2d-x中的优先级小的,先响应触摸事件,这是,我们只需要设置新添加

cocos2d-x添加触摸层阻止后端事件

        由于cocos2d-x中的优先级小的,先响应触摸事件,这是,我们只需要设置新添加的cclayer层的优先级即可,但由于ccmenu的优先级较高,所以,很有可能透过我们添加的触摸层,响应之前的绑定的button事件,而如果我们设置此触摸层优先级比button的低时,又导致在这层添加的button按钮的触摸事件不能触发,导致本层应该触摸的事件也不能响应,这样也达不到我们理想的效果:弹出一个层,屏蔽后面的事件,在当层可以有一些按钮,让我们进行不同的选择,比如确定,or 取消。

         自从cocos2d-x2.0版本后,添加了一个CCControlButton,这个优先级为0,比默认的button高,因此,我们可以在当前层添加CCControlButton,在弹出的层设置layer的优先级比0小,这样,在弹出的层添加menu就能够响应,也不会影响后面的事件。当然,由于CCControlButton的优先级是可以自动设置的,所以,我们也可以设置弹出的层为-128(或者更小),然后设置CCControlButton的优先级更小就可以了。

      具体代码如下:

cocos2d-x平添触摸层阻止后端事件

第一张图片点击右下角的退出按钮,没有反应,点击click me按钮,取消当前层显示原来的hello world层,此时退出按钮有效。

当然,弹窗阻止后端事件,还可以这样,添加一个层,用一个图片作为大背景,覆盖全屏,在这张图片上添加相应的处理事件,这个有空在写吧

热点排行