cocos2d-x lua 触摸事件
2015-06-03 17:50
465 查看
cocos2d-x lua 触摸事件
version: cocos2d-x 3.61.监听
function GameLayer:onEnter() local eventDispatcher = self:getEventDispatcher() local function onTouchBegan(touch, event) local locationInNode = self:convertToNodeSpace(touch:getLocation()) local s = self:getContentSize() local rect = cc.rect(0, 0, s.width, s.height) if cc.rectContainsPoint(rect, locationInNode) then self:setColor(cc.c3b(255, 0, 0)) return true end return false end local function onTouchMoved(touch, event) end local function onTouchEnded(touch, event) self:setColor(cc.c3b(255, 255, 255)) end local listener = cc.EventListenerTouchOneByOne:create() self._listener = listener listener:setSwallowTouches(true) listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN ) listener:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED ) listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED ) if 0 == self._fixedPriority then eventDispatcher:addEventListenerWithSceneGraphPriority(listener, self) else eventDispatcher:addEventListenerWithFixedPriority(listener,self._fixedPriority) end end
2.移除
function TouchableSpriteWithFixedPriority:onExit() local eventDispatcher = self:getEventDispatcher() eventDispatcher:removeEventListener(self._listener) end
3.注意
onEnter和onExit在lua中不会因节点别add和remove而直接被调用,当子节点被父节点add和remove时,会发送enter和exit的消息,所以需要再初始化节点的时候,监听消息,并在收到消息后调用onEnter或onExit。http://blog.csdn.net/songcf_faith/article/details/46388899
相关文章推荐
- 详解Lua中的表的概念及其相关操作方法
- Lua脚本自动生成APK包
- Lua中的元表(metatable)、元方法(metamethod)详解
- Lua中的metatable介绍
- Lua中ipair和pair的区别
- Lua中的函数精讲笔记
- 浅谈Lua的面向对象特性
- 详解Lua中的变量相关知识点
- Lua脚本语言入门笔记
- Lua脚本调用外部脚本
- 详解Lua中的if语句的使用方法
- Lua中调用函数使用点号和冒号的区别
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中强大的元方法__index详解
- Lua面向对象之类和继承浅析
- Lua性能优化技巧(一):前言
- Lua中获取table长度问题探讨
- Lua学习笔记之数据类型
- 实现Lua中数据类型的源码分享
- LUA中的闭包(closure)浅析