您的位置:首页 > 产品设计 > UI/UE

quick 关于触摸的问题

2015-06-10 12:21 288 查看

以前遇到一个问题就是,如果触摸层不在最后,会导致触摸失效。这是由于下面添加的层挡住了触摸层,而后添加的层会位于上面,默认是不可点击,点击不可穿透的。所以我们必须将触摸层放置到最上面。


Logic.lua

local Logic = class("Logic",function ()
return display.newLayer()
end )

function Logic:ctor()
self:addNodeEventListener(cc.NODE_ENTER_FRAME_EVENT, handler(self, self.update))
self:scheduleUpdate()
end

function Logic:update(dt)
print("Logic")
end

return Logic

Touch.lua

local Touch = class("Touch",function ()
return display.newLayer()
end )

function Touch:ctor()

self:setTouchEnabled(true)
self:setTouchSwallowEnabled(false)
self:addNodeEventListener(cc.NODE_TOUCH_EVENT, handler(self, self.touchTouch))

--
self:addNodeEventListener(cc.NODE_ENTER_FRAME_EVENT, handler(self, self.update))
self:scheduleUpdate()
end

function Touch:touchTouch( event )

if( event.name == "began" ) then
print("began")
return true
end
if( event.name =="moved" ) then
print("moved")
end
if( event.name =="ended" ) then
print("ended")
end
end

function Touch:update(dt)
print("Touch")
end

return Touch

MainScene.lua 可以

local MainScene = class("MainScene", function()
return display.newScene("MainScene")
end)

function MainScene:ctor()

local Logic=require("src.app.scenes.Logic")
local logic=Logic.new()
self:addChild(logic)

local Touch=require("src.app.scenes.Touch")
local touch=Touch.new()
self:addChild(touch)
end

function MainScene:onEnter()
end

function MainScene:onExit()
end

return MainScene

修改为下面这个不可以。

function MainScene:ctor()

local Touch=require("src.app.scenes.Touch")
local touch=Touch.new()
self:addChild(touch)

local Logic=require("src.app.scenes.Logic")
local logic=Logic.new()
self:addChild(logic)

end

修改为下面这个可以。

function MainScene:ctor()

local Touch=require("src.app.scenes.Touch")
local touch=Touch.new()
self:addChild(touch,10)

local Logic=require("src.app.scenes.Logic")
local logic=Logic.new()
self:addChild(logic)

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: