zoukankan      html  css  js  c++  java
  • quick 关于触摸的问题

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

    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
    
  • 相关阅读:
    海思HI3516A开发板顺利上线
    android WIFI信息获取
    五------Jsp九大内置对象。
    在Windows下搭建Apacheserver
    基于ContentObserver来动态取消或加入屏幕超时任务
    使用Intent的Flag设置启动參数
    IntelliJ IDEA像Eclipse一样打开多个项目
    怎样让IE支持自己定义协议
    《TCP/IP具体解释卷2:实现》笔记--协议控制块
    POJ2029:Get Many Persimmon Trees(二维树状数组)
  • 原文地址:https://www.cnblogs.com/yufenghou/p/4565695.html
Copyright © 2011-2022 走看看