- 本帖最后由 Mike峰 于 2013-4-23 09:15 编辑 *
我自己写了一个类,继承了CCControlButton,重写了他的ccTouchBegan和ccTouchEnded方法,但是当我使用这个类的时候,他的ccTouchEnded函数有时候会不响应,导致在这个函数中调用的回调函数不起作用。有人知道这是为什么吗?下面是我的部分源码:
bool SCControlButton::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
if (!isTouchInside(pTouch) || !isEnabled())
{
return false;
}
//这是我改的地方
if(m_eState == CCControlStateHighlighted)
m_eState = CCControlStateNormal;
else
m_eState=CCControlStateHighlighted;
m_isPushed=true;
this->setHighlighted(true);
sendActionsForControlEvents(CCControlEventTouchDown);
isMoved = false;
return true;
}
void SCControlButton::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
m_isPushed = false;
setHighlighted(false);
//这是我改的地方
if(isMoved)
return;
if (isTouchInside(pTouch))
{
sendActionsForControlEvents(CCControlEventTouchUpInside);
}
else
{
sendActionsForControlEvents(CCControlEventTouchUpOutside);
}
}