使用cocostudio做的一个控件,监听onTouchEnded事件。
void Widget::onTouchEnded(Touch *touch, Event *unusedEvent)
{
_touchEndPosition = touch->getLocation();
Widget* widgetParent = getWidgetParent();
if (widgetParent)
{
widgetParent->interceptTouchEvent(TouchEventType::ENDED, this, touch);
}
bool highlight = _highlight;
setHighlighted(false);
if (highlight)
{
//鼠标释放时调用了releaseUpEvent();方法
releaseUpEvent();
}
else
{
cancelUpEvent();
}
}
```
void Widget::releaseUpEvent()
{
//调用_touchEventCallback中释放了控件本身
if (_touchEventCallback) {
_touchEventCallback(this, TouchEventType::ENDED);
}
//由于被释放_touchEventListener不为空
if (_touchEventListener && _touchEventSelector)
{
//然后这行报错
(_touchEventListener->*_touchEventSelector)(this,TOUCH_EVENT_ENDED);
}
}
```
是我使用方法错了吗:12:
我用下一帧释放绕过去了