• quick-cocos2d中自定义按钮(BUTTON)


    1,在cpp下创建一个view分组,然后在里面创建一个MyButton.lua文件:

    local MyButton={}
    print("nihao")
    function MyButton.new(params)
    print("nihao-----")
    local listener=params.listener
    local button
    params.listener=function(sender)
    if params.preapare then
    params.prepare()
    end
    local function zoom1(offset,time,onComplete)
    local x,y=button:getPosition()
    local size=cc.size(193,81)
    local scaleX=button:getScaleX()*(size.width+offset)/size.width
    local scaleY=button:getScaleY()*(size.height-offset)/size.height

    transition.moveTo(button,{y=y-offset,time=time})
    transition.scaleTo(button,{
    scaleX=scaleX,
    scaleY=scaleY,
    time=time,
    onComplete=onComplete,
    })
    end

    local function zoom2(offset,time,onComplete)
    local x,y=button:getPosition()
    local size=cc.size(193,81)

    transition.moveTo(button,{y=y+offset,time=time/2})
    transition.scaleTo(button,{
    scaleX=1.0,
    scaleY=1.0,
    time=time,
    onComplete=onComplete,
    })
    end

    -- button:getParent():setEnabled(false)--先关闭父类的button功能
    print("button")
    zoom1(40,0.08,function()
    zoom2(40,0.09,function()
    zoom1(20,0.10,function()
    zoom2(20,0.1,function()
    print("button")
    -- button:getParent():setEnabled(true)
    local tag=button:getTag()
    listener(tag)
    end)
    end)
    end)
    end)
    end
    button=cc.ui.UIPushButton:new();
    button:setButtonImage(cc.ui.UIPushButton.NORMAL, params.image, false)
    button:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event)
    if event.name=="ended" then
    params.listener()
    end
    return true
    end)
    return button
    end
    return MyButton

    2:引用自定义的Button:

    local Button=require("app.view.MyButton")
    local MainScene = class("MainScene", function()
    return display.newScene("MainScene")
    end)

    function MainScene:ctor()
    cc.ui.UILabel.new({
    UILabelType = 2, text = "Hello, World", size = 64})
    :align(display.CENTER, display.cx, display.cy)
    :addTo(self)
    local button=Button.new({
    image="anniu-xuanzhong.png",
    listener=function()
    print("click")
    end,
    x=display.cx,
    y=display.cy
    })
    button:setPosition(cc.p(320, 480))
    self:addChild(button)
    end

    function MainScene:onEnter()
    end

    function MainScene:onExit()
    end

    return MainScene

  • 相关阅读:
    Quarts 执行定时任务失败(.job.entity.ScheduleJobEntity cannot be cast to com.)
    Map与String互相转化
    weui中的picker滑动报错
    weui中的picker使用js进行动态绑定数据
    ajax跨域问题解决方案(jsonp的使用)
    pdm文件打开方式
    删除静态页面的html
    js同时获取多个共同class内容标签内容集合
    内外网同时使用
    win10重装系统修改信息
  • 原文地址:https://www.cnblogs.com/xiajianwei/p/5120974.html
Copyright © 2020-2023  润新知