当在MenuItem中Remove自身时引发崩溃,这个Bug产生的理由是在CCMenuItem的回调函数中有Remove CCMenuItem的行为,当点击时,Delete了CCMenuItem但是CCMenuItem之前委托了在TouchDispathcer与里面的动作不能被取消,如CCTouchEnd,然后CCTouchEnd回来回调CCMenuItem,但此时的CCMenuItem已经被Release掉了。所以就出现了Bug。
比较low的解决办法:
1.在MenuItem回调中先setVisible为false,再回调结束后Remove掉。
2.对于切换按钮“状态”的,可以通过CCMenuItemSprite的getNormalImage()和getSelectedImage()获取对应的精灵,setDisplayFrame()替换图片来达到效果。
MenuItem回调中Remove引发崩溃
最新推荐文章于 2022-02-22 10:54:05 发布