cocos2d-x技术群新群:117871561
c++技术交流群:593010226
版本 3.1.1
registerScriptTouchHandler --注册触屏事件
registerScriptTapHandler --注册点击事件
registerScriptHandler -- 注册基本事件 包括 触屏 层的进入 退出 事件
registerScriptKeypadHandler --注册键盘事件
--registerScriptAccelerateHandler 注册加速事件 此事件用法待更新
1.registerScriptTouchHandler 注册触屏事件
--注册
self.spTrusteeCover = cc.Layer:create():setVisible(false):addTo(self, 4)
self.spTrusteeCover:setTouchEnabled(true) self.spTrusteeCover:registerScriptTouchHandler(function(eventType, x, y)
return self:onTrusteeTouchCallback(eventType, x, y)
end)
--回调函数
function GameViewLayer:onTrusteeTouchCallback(event, x, y)
local rect = self.spTrusteeCover:getChildByTag(GameViewLayer.SP_TRUSTEEBG):getBoundingBox()
if cc.rectContainsPoint(rect, cc.p(x, y)) then
return true
else
return false
end
end
2,registerScriptTapHandler 很少用 , 注册点击事件
--给一张图添加点击事件
function GameViewLayer:set()
local im_btn = cc.ImageView:create()
:setPosition(100,100)
local function btnCallBack()
print("registerScriptTapHandler")
end
im_btn:registerScriptTapHandler(btnCallBack)
end
3,registerScriptHandler 平时项目中用的最多,前面有写此注册事件的用法,这里在简单写一下 注册基本事件 包括 触屏 层的进入 退出 事件
function GameViewLayer:registLayerListener()
--创建一个单点触屏事件
local listener = cc.EventListenerTouchOneByOne:create()
--注册触屏开始事件
listener:registerScriptHandler(onTouchBegan, cc.Handler.EVENT_TOUCH_BEGAN)
--注册触屏移动事件
listener:registerScriptHandler(onTouchMoved, cc.Handler.EVENT_TOUCH_MOVED)
--注册触屏结束事件
listener:registerScriptHandler(onTouchEnded, cc.Handler.EVENT_TOUCH_ENDED)
--获取层的事件派发器
local eventDispatcher = config.bottomLayer:getEventDispatcher()
--事件派发器 注册一个node事件
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, config.bottomLayer)
end
--onTouchBegan,onTouchMoved,onTouchEnded分别为触摸开始,移动,结束回调处理方法
4,registerScriptKeypadHandler --注册键盘事件
function GameViewLayer:KeyboardEvent()
local function keyboardPressed(keyCode, event)
if keyCode == 23 then
log("left")
elseif keyCode == 24 then
log("right")
elseif keyCode == 25 then
log("up")
elseif keyCode == 26 then
log("down")
end
end
local listener = cc.EventListenerKeyboard:create()
listener:registerScriptHandler(keyboardPressed, cc.Handler.EVENT_KEYBOARD_PRESSED)
listener:registerScriptHandler(keyboardReleased, cc.Handler.EVENT_KEYBOARD_RELEASED)
local eventDispatcher = config.bottomLayer:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, config.bottomLayer)
end
这几个注册事件方法 可以根据情况选择使用
网友评论