如何将小部件的可见性设置为false?

因此,我有这个函数:

local function addMainMenu()
    local widget = require( "widget" )

    -- 处理按钮事件的函数
    local function handleButtonEvent( event )

        if ( "ended" == event.phase ) then
            scene = "GAME"
        end
    end

    -- 创建小部件
    local button1 = widget.newButton(
        {
            label = "button",
            onEvent = handleButtonEvent,
            emboss = false,
            --圆角矩形按钮的属性
            shape = "roundedRect",
            width = 200,
            height = 40,
            cornerRadius = 2,
            fillColor = { default={0.9,0.9,0.9,1}, over={1,0.1,0.7,0.4} },
            strokeColor = { default={0,0,0,1}, over={0.8,0.8,1,1} },
            strokeWidth = 5
        }
    )

    -- 将按钮居中
    button1.x = display.contentCenterX
    button1.y = display.contentCenterY

    -- 更改按钮的标签文本
    button1:setLabel( "开始游戏" )
end

这将添加启动游戏的按钮,然后我有:

local function enterFrame()
    local dt = getDeltaTime()
    if (scene == "MAIN_MENU") then
         addMainMenu()
    elseif (scene == "GAME") then
        if (running == false) then
            startGame()
        else
            moveBg(dt)
            moveEnemy(enemy)
            updateScore()
        end
    elseif (scene == "GAME_OVER") then
        local gameOverLabel = display.newText( "Game Over!", 50, 20, native.systemFont, 16)
        gameOverLabel:setFillColor(1, 1, 1)
    end
end

如您所见,一旦我点击开始按钮,场景就会变为“GAME”,并且按钮应该消失。问题是:它还在那里。阅读文档后,我无法找到将其可见性设置为false的方法。如何停止显示小部件?

点赞
用户2858170
用户2858170

一种ButtonWidget继承自GroupObject,后者继承自DisplayObject,提供了isVisible属性。

概述

控制对象是否显示在屏幕上。该属性也是可读的,默认为true。

示例

local rect1 = display.newRect(100, 100, 50, 50)

rect1:setFillColor(0.7)

local rect2 = display.newRect(150, 100, 50, 50)

rect2:setFillColor(1, 0, 0, 0.6)

rect2.isVisible = false

button1.isVisible = false 将隐藏按钮。在下一个屏幕更新时,它将消失。

如果您不再需要这个按钮,您也可以通过调用button1:removeSelf()或从其父级组中移除它来将其删除。

2018-03-06 07:23:18
用户9369297
用户9369297

将按钮隐藏或移除

如果想要使按钮不可见,可以使用 .isVisible

button1.isVisible = false

如果要隐藏它,可以使用 .alpha

button1.alpha = 0.00
-- 或者只隐藏一点,50%
button1.alpha = 0.50

如果要移除它:

display.remove( button1)
button1= nil
2018-03-12 11:24:00