按钮长按功能
2015-11-13 13:16
681 查看
首先对按钮注册监听 btnSkill:addTouchEventListener(eventTouch) -- eventTouch为回调函数 然后 local function eventTouch(ref, type) if ref == btnSkill then if type == ccui.TouchEventType.began then --开始触摸的时候 isTouch = true --设置一个触摸标签 --创建一个定时器每0.5秒调用一次beginHandle这个函数,返回一个Id,用于unscheduleScriptFunc( Id) self._beginHandle = cc.Director:getInstance():getScheduler():scheduleScriptFunc(beginhandle,0.5 ,false) elseif type == ccui.TouchEventType.moved then --触摸移动的时候 -- elseif type == ccui.TouchEventType.ended then --触摸结束的时候 --取消创建的定时器 cc.Director:getInstance():getScheduler():unscheduleScriptEntry( self._beginHandle) isTouch = false self._skillNode:setVisible(false ) end end end 然后实现定时器中的回调函数beginhandle local function beginhandle() if isTouch then --判断是否被触摸 count = count + 1 --开始计时 if count >= 2 then count = 0 self._skillNode:setVisible(true ) --函数的实现 self:showSkill(v) end end end 由于声明先后的原因,正确顺序应该是: local count = 0 local isTouch = false local function beginhandle() if isTouch then --判断是否被触摸 count = count + 1 --开始计时 if count >= 2 then count = 0 self._skillNode:setVisible(true ) --函数的实现 self:showSkill(v) end end end local function eventTouch(ref, type) if ref == btnSkill then if type == ccui.TouchEventType.began then --开始触摸的时候 isTouch = true --设置一个触摸标签 --创建一个定时器每0.5秒调用一次beginHandle这个函数,返回一个Id,用于unscheduleScriptFunc( Id) self._beginHandle = cc.Director:getInstance():getScheduler():scheduleScriptFunc(beginhandle,0.5 ,false) elseif type == ccui.TouchEventType.moved then --触摸移动的时候 -- elseif type == ccui.TouchEventType.ended then --触摸结束的时候 --取消创建的定时器 cc.Director:getInstance():getScheduler():unscheduleScriptEntry( self._beginHandle) isTouch = false self._skillNode:setVisible(false ) end end end btnSkill:addTouchEventListener(eventTouch) -- eventTouch为回调函数
相关文章推荐
- Cocos2d-x中背景音乐和音效使用实例
- Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验
- Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例
- Cocos2d-x UI开发之文本类使用实例
- Cocos2d-x保存用户游戏数据之XML文件是否存在问题判断方法
- Cocos2d-x UI开发之菜单类使用实例
- Cocos2d-x UI开发之CCControlButton控件类实例
- Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系
- Cocos2d-x UI开发之CCControlColourPicker控件类使用实例
- Cocos2d-x学习笔记之CCLayerColor层的使用实例
- Cocos2d-x Schedule定时器的使用实例
- Cocos2d-x中使用CCScrollView来实现关卡选择实例
- Cocos2d-x中CCEditBox文本输入框的使用实例
- cocos2d-x学习笔记之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex场景层介绍
- Cocos2d-x UI开发之CCControlSlider控件类使用实例
- Cocos2d-x学习笔记之开发环境搭建
- Cocos2d-x学习笔记之Hello World!
- Cocos2d-x的内存管理总结
- Cocos2d-x 3.0中集成社交分享ShareSDK的详细步骤和常见问题解决
- Cocos2d-x入门教程(详细的实例和讲解)