您的位置:首页 > 产品设计 > UI/UE

指针问题,设置CCmenuitem为enable(false),还会触发其回调函数

2014-05-05 11:39 274 查看
最近最项目,遇到一个问题。解决方案很简单,但是却花费了我不少时间去排查,主要原因还是自己太菜。

在一个tableview中我自己写了一个cell,然后在cell中创建一个按钮。每次有数据变动都会重新画这个cell。

画这个cell的时候,我就会去重新创建一个CCMenuItemImage。

p_MenuItem1 = CCMenuItemImage::create("images/ui/ChooseMapScene/300006.png","images/ui/ChooseMapScene/300006.png","images/ui/ChooseMapScene/300007.png",

this,menu_selector(ChooseMapCell::BtnClickBoxSmall));

结果就是,我设置enable(false)完成过后,虽然表面上这个按钮显示的是不能点击的状态,但是点击过后还是会触发,按钮的回调函数。

通过将CCMenuItem的指针地址打印出来,发现点击的不是我设置的这个CCMenuItemImage。

而是前一个已经创建,但是没有回收,也没有设置为null的指针。

所以加上下面一句,就能解决这个问题。

if (p_MenuItem1 != NULL)

{

p_MenuItem1->removeFromParentAndCleanup(true);

p_MenuItem1 = NULL;

}

cocos2dx中用指针很多,需要注意


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐