Quick_触摸事件

来源:互联网 发布:足下软件学院校长 编辑:程序博客网 时间:2024/06/01 22:42

在C++ 中,事件分发机制包括
触摸事件: EventListenerTouchOneByOne、EventListenerTouchAllAtOnce
鼠标响应事件: EventListenerMouse
键盘响应事件: EventListenerKeyboard
加速计事件: EventListenerAcceleration
自定义事件: EventListenerCustom
物理碰撞事件: EventListenerPhysicsContact
游戏手柄事件: EventListenerController

而在 Quick 中里注册触摸有两种方式,首先我们看第一种

第一种,使用 addNodeEventListener

local sp = cc.Sprite:create("GreenButton.png")    sp:setPosition(cc.p(480,320))    self:addChild(sp)    sp:setTouchEnabled(true)    sp:setTouchSwallowEnabled(false)    sp:addNodeEventListener(cc.NODE_TOUCH_EVENT, function ( event )        -- dump(event)        print(event.x .." ," .. event.y)        if event.name == "ended" then            print("ended")        elseif event.name == "began" then            print("began")            return true        end    end)

第二种,使用 EventDispatcher 进行注册

1、使用步骤-- 1.获取事件分发器     :     EventDispatcherlocal dispatcher = cc.Director:getInstance( ):getEventDispatcher( )-- 2.创建事件监听器     :     EventListener(例如单点触摸)local listener = cc.EventListenerTouchOneByOne:create( )-- 3.注册事件响应函数     :     registerScriptHandler-- hander  :响应函数-- type     : 事件类型listener:registerScriptHandler(hander,type)-- 4.在事件分发器中,添加监听器。事件响应委托为 selfdispatcher:addEventListenerWithSceneGraphPriority(listener,self)
0 0