如何实现双击事件
使用计时器方法,以延迟0.3m来执行单击事件,如果在这时间内,又一次点击了,则执行双击事件
代码如下:
1 在类中声明成员 2 bool touchFlag; 3 4 在init中初始化 5 touchFlag = false; 6 7 // 计时器的回调函数 8 void HeroHandBook::materialUpdate( float dt ){ 9 // 如果是双击事件 10 if(touchFlag){ 11 touchFlag = false; // 设置为单击事件 12 // 单击事件所要执行的内容 13 CCLOG("---- silent touch Material Icon one ----"); 14 } 15 } 16 17 // 点击事件的回调函数 18 void HeroHandBook::materialCallBack( CCObject* object, TouchEventType n ){ 19 20 switch ( n ) 21 { 22 case TOUCH_EVENT_ENDED: 23 { 24 // 开始的时候是false的,所以跳过执行else中的内容 25 // 执行的是双击事件的内容 26 if(touchFlag){ 27 touchFlag = false; 28 CCLOG("---- silent touch Material Icon two ----"); 29 } 30 else{ 31 // 延时执行单击事件的内容 32 scheduleOnce(schedule_selector(HeroHandBook::materialUpdate), 0.3f); 33 touchFlag = true; 34 } 35 } 36 break; 37 default: 38 break; 39 } 40 }