Scrollview 的 toucheventtype 问题

void Preview::test(CCObject * pSender,TouchEventType type)
{
if(type == TOUCH_EVENT_ENDED)
{
CCLog(“ended--------------------------------------------------ended”);
}

if(type == TOUCH_EVENT_BEGAN)
{
CCLog(“began--------------------------------------------------began”);
}

if(type == TOUCH_EVENT_MOVED)
{
CCLog(“move---------------------------------------------------move”);
}

if(type == TOUCH_EVENT_CANCELED)
{
CCLog(“canceled–canceled–canceled–canceled–canceled–canceled–”);
}
}

问题是怎么在MOVE事件中不触发ENDED事件呢?

事件是这样的流程

触摸开始–>移动(可能没有)|----->取消 移动到控件外松开
|----->结束 在当前控件内松开

当移动和结束事件都有的时候,怎么样才能只响应移动事件不响应结束呢?

那你不写这个事件就可以了,系统会将所有的事件都发给你,至于如果做就由你来决定了

没有能够在执行MOVED的时候,不执行ENDED的方法吗?

创建一个全局变量: bool g_bMoved = false;

void Preview::test(CCObject * pSender,TouchEventType type)
{
if(type == TOUCH_EVENT_ENDED && g_bMoved )
{
CCLog(“ended--------------------------------------------------ended”);

}

if(type == TOUCH_EVENT_BEGAN)
{
CCLog(“began--------------------------------------------------began”);
g_bMoved = true;
}

if(type == TOUCH_EVENT_MOVED)
{
CCLog(“move---------------------------------------------------move”);
g_bMoved = false;
}

if(type == TOUCH_EVENT_CANCELED)
{
CCLog(“canceled–canceled–canceled–canceled–canceled–canceled–”);
}
}

解决