Cocos2dx 点击事件问题

触发场景:同一个界面上的button,移除这个界面,再添加这个界面,点击按钮的时候崩溃
问题分析:调用handleRollOver的时候,最后
touch->lastRollOver = touch->target;
if (touch->lastRollOver)
CC_SAFE_RETAIN(touch->lastRollOver);
保存了这个touch的lastRollOver,在TouchEnd的最后没有释放这个touch,
移除界面后下次点击同一个位置调用touch->lastRollOver->getParent()崩溃,因为已经没有parent了
谷主大人麻烦看下这个地方
已邀请:

guranaie - 鱼塘小虾米

赞同来自:

我的做法是InputProcessor里的onTouchEnd最后,调用ti->reset(),并修改reset方法,修改如下

if (lastRollOver)
CC_SAFE_RELEASE(lastRollOver);
    
lastRollOver = nullptr;        --上面一行代码下添加这个
 

谷主

赞同来自:

不可以这样改。在pc上touchend不等于rollout。我测试一下看是怎么回事吧。

guranaie - 鱼塘小虾米

赞同来自:

好的,重现的时候最好删除界面和添加界面中间加个间隔,在间隔中间的时候点击之前按钮的问题就崩了

谷主

赞同来自:

已经改好了

要回复问题请先登录注册