addTouchEventListener为什么会调用两次?

UIImageView* p = (UIImageView*)_Widger->getChildByName(“Image”);
p->addTouchEventListener(p, toucheventselector(sss::abc));

void猀猀猀::abc( CCObject* pSender,TouchEventType type )
{
CCLOG("!!!");
}

点击到P指向的那个图片上会调用两次abc函数。控制台打印了两次。话说为什么要调用两次呢?鼠标点下一次,抬起一次都触发了这个函数!

那个type参数是判断你的行为的,按下/松开/移动,如果你没按照分类来用,自然会多次调用。
void Bag::touchEvent(CCObject* pSender,TouchEventType type)
{
UIWidget* equip = (UIWidget*)pSender;
if (type == TOUCH_EVENT_BEGAN)
{
touchBeganEvent(equip);
}
if (type == TOUCH_EVENT_MOVED)
{
touchMoveEvent(equip);
}
if (type == TOUCH_EVENT_ENDED)
{
touchEndedEvent(equip);
}
}
可以参考这个(取自Samples里面SampleChangeEquip)

原来如此。谢谢。。。。。