cocos2d-x lua 信息提示

2017-11-20  本文已影响80人  亮亮同学

cocos2d-x技术群新群:117871561
c++技术交流群:593010226

--屏幕宽,高
appdf.WIDTH                                 = 1334
appdf.HEIGHT                                = 750
--提示界面,ex:点击功能按钮 如果没有此功能 可以用此函数提示 此功能暂未开放。context为当前的layer类,message为当前设置的提示语,delaytime是延时时间,color是message的颜色
function MyCache.showToast(context,message,delaytime,color)
    if (context == nil) or  (message == nil) or (delaytime<1) then
        return
    end

    local msgtype = type(message)
    if msgtype == "userdata" or msgtype == "table" then
        return
    end

    if message == "" then
        return
    end
    local showMessage = message 
    
    local bg = nil
    local lab = nil
        bg = ccui.ImageView:create("General/frame_1.png")
        bg:setOpacity(0)
        bg:move(appdf.WIDTH/2,appdf.HEIGHT/2)
        bg:addTo(context)
        bg:setName("toast_bg")
        bg:setScale9Enabled(true)
        bg:runAction(cc.Sequence:create(cc.FadeTo:create(0.5,255), 
            cc.DelayTime:create(delaytime), 
            cc.Spawn:create(cc.FadeTo:create(0.5,0),cc.CallFunc:create(function()
                lab:runAction(cc.FadeTo:create(0.5,0))
                end)), 
            cc.RemoveSelf:create(true)))

        lab = cc.Label:createWithTTF(showMessage, "fonts/round_body.ttf", 24, cc.size(930,0))
        lab:setName("toast_lab")
        
        lab:setTextColor(not color and cc.c4b(255,255,255,255) or color)
        lab:addTo(bg)

    if nil ~= lab and nil ~= bg then
        bg:setZOrder(2 ^ 15)
        lab:setString(showMessage)
        lab:setTextColor(not color and cc.c4b(255,255,255,255) or color)
        local labSize = lab:getContentSize()        

        if labSize.height < 30 then
            lab:setHorizontalAlignment(cc.TEXT_ALIGNMENT_CENTER)
            bg:setContentSize(cc.size(appdf.WIDTH, 64))
        else
            lab:setHorizontalAlignment(cc.TEXT_ALIGNMENT_LEFT)
            bg:setContentSize(cc.size(appdf.WIDTH, 64 + labSize.height))        
        end
        lab:move(appdf.WIDTH * 0.5, bg:getContentSize().height * 0.5)
    end
end
上一篇 下一篇

猜你喜欢

热点阅读