MenuItem回调中Remove引发崩溃

MenuItem回调中Remove引发崩溃

当在MenuItem中Remove自身时引发崩溃,这个Bu*生的理由是在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引发崩溃