cocos2dx+lua注册事件函数详解

来源:互联网 发布:阿里云安装php环境 编辑:程序博客网 时间:2024/05/16 08:49

coocs2dx 版本 3.1.1

registerScriptTouchHandler             注册触屏事件

registerScriptTapHandler                  注册点击事件

registerScriptHandler                         注册基本事件 包括 触屏 层的进入 退出 事件

registerScriptKeypadHandler           注册键盘事件

registerScriptAccelerateHandler      注册加速事件


registerScriptTouchHandler 详解(可以设置单点或多点)

function gameWindow:addLayerTouchEventMethod1()    local function onTouchEvent(eventType, x, y)        --log("eventType = "..tostring(eventType))        if eventType == "began" then             --需要返回true            return onTouchBegan(touch, event)        elseif eventType == "moved" then             onTouchMoved(touch, event)        elseif eventType == "ended" then             onTouchEnded(touch, event)        end    end    config.bottomLayer:setTouchEnabled(true)    config.bottomLayer:registerScriptTouchHandler(onTouchEvent)end

registerScriptTapHandler                  注册点击事件 

function gameWindow:addBtn()    local btn = cc.MenuItemImage:create("white.png", "black.png", "black.png")    btn:setPosition(320, 160)    local function btnClick()        log("btnClick")    end    btn:registerScriptTapHandler(btnClick)    local menu = cc.Menu:create()    config.bottomLayer:addChild(menu)    menu:setPosition(cc.p(0,0))    menu:addChild(btn)end

registerScriptHandler                         注册基本事件 

注册触屏事件用法

function gameWindow:addLayerTouchEventMethod2()    --创建一个单点触屏事件    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



注册layer的 进入 退出事件用法

function gameWindow:addLayerEnterAndExitEvent()    local function onNodeEvent(eventType)        if eventType == "enter" then            log("enter")        elseif eventType == "exit" then            log("exit")        end    end    config.bottomLayer:registerScriptHandler(onNodeEvent)end

addTouchEventListener和addClickEventListener是用于UIWidget的
 local function touchCallBack(sender,eventType) 
                    local tag = sender:getTag()
                    if eventType == ccui.TouchEventType.ended then 
                        if tag == parent.masktag then 
                            setlayout:removeFromParentAndCleanup(true)
                            masklayer:Exit() 
                        end 
                    end
                end 
                masklayer:addTouchEventListener(touchCallBack) 
0 0