cocos2d-x ListView滚动与Button点击事件

   

 

初学cocos2dx开发游戏,在实际开发游戏中遇到一些问题,比如滑动菜单,滑动button不截断ListView的滑动。

下面发表一下个人见解,本人初学,如各位大佬发现错误,请指正cocos2d-x ListView滚动与Button点击事件

 

用ListView实现button滚动

 

像这样实现一个简单菜单列表,点击菜单会实现跳转(我这里是实现画面切换,也可以执行某一函数)。

触摸点在菜单上也可以实现列表的滑动(这是今天讲的重点哦)。

 

1.引入头文件

cocos2d-x ListView滚动与Button点击事件

 

2.创建ListView容器列表,在里面添加一个Layout布局,然后就可以在上面添加button按钮了

(这里建议用button按钮 因为它不会对触摸事件的截断,如果用创建菜单的方式Menu创建会对触摸事件的截断,它的优先级最高)

 

cocos2d-x ListView滚动与Button点击事件

 

3、然后添加button的触发事件

 

cocos2d-x ListView滚动与Button点击事件

 

 

这里的button事件有四个属性,BEGAN(触摸开始发生的事件),MOVED(在按钮上移动发生的事件)

CANCELED(取消发生的事件),ENDED(触摸结束发生的事件,注意是在没有移动的情况下发生)

 

(1)当触摸按钮并有偏移量的发生时,值执行BEGAN,MOVED,CANCELED事件,不会发生ENDED事件

(2)当触摸按钮没有偏移量发生时(即点击事件),只会执行BEGAN,ENDEN事件

 

从上面的分析,我们可以把需要发生的事件放在ENDED下,这样滑动列表不会触发是事件,点击会触发,能到达我们的要求

 

如果列表很多,可以采用for循环的方式创建button

 

cocos2d-x ListView滚动与Button点击事件

 

截屏没有截完cocos2d-x ListView滚动与Button点击事件 下面是剩下的部分

 

cocos2d-x ListView滚动与Button点击事件

 

这里循环创建6个button按钮,注意应该设置TAG标记

 

button按钮的点击事件第一参数传入触发对象,通过获取TAG的值来判断我们点击的是哪一个按钮,

就可以实现对应的操作啦cocos2d-x ListView滚动与Button点击事件