首页 > 代码库 > quick-x 触摸事件的新方法
quick-x 触摸事件的新方法
--[[ local function onTouch(event, x, y) print(event, x, y) if event == "began" then return true -- 在 began 事件里返回 true,表示要接收后续的触摸事件 end end
local layer = display.newLayer()
layer:addTouchEventListener(onTouch)
layer:setTouchEnabled(true) -- 注册后还必须启用触摸
rect:addChild(layer) -- 还要将 CCLayer 对象加入场景或其他显示对象中
]]
以上是qx的旧的写法。
而新的2.3.3的写法则是:
rect:setTouchMode(cc.TOUCH_MODE_ONE_BY_ONE) -- 单点触摸
rect:setTouchEnabled(true)
rect:setTouchCaptureEnabled(true)
rect:setTouchSwallowEnabled(true)
-- 添加触摸事件处理函数
rect:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event)
-- event.phase 的值是:
-- cc.NODE_TOUCH_TARGETING_PHASE
-- event.mode 的值是下列之一:
-- cc.TOUCH_MODE_ONE_BY_ONE 单点触摸
-- cc.TOUCH_MODE_ALL_AT_ONCE 多点触摸
-- event.name 的值是下列之一:
-- began 触摸开始
-- moved 触摸点移动
-- ended 触摸结束
-- cancelled 触摸被取消
-- 如果是单点触摸:
-- event.x, event.y 是触摸点位置
-- event.prevX, event.prevY 是触摸点之前的位置
-- 如果是多点触摸:
-- event.points 包含了所有触摸点的信息
-- event.points = {point, point, ...}
-- 每一个触摸点的值包含:
-- point.x, point.y 触摸点的当前位置
-- point.prevX, point.prevY 触摸点之前的位置
-- point.id 触摸点 id,用于确定触摸点的变化
if event.name == "began" then
-- 在单点触摸模式下:在触摸事件开始时,必须返回 true
-- 返回 true 表示响应本次触摸事件,并且接收后续状态更新
print("new element")
return true
end
end)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。