0

非常快,而且可能很简单的问题......但它让我在过去的 30 分钟里被难住了......但是我怎样才能从画布/屏幕上删除项目?

我知道这适用于 removeSelf(),但我不太确定如何在我的示例中使用它:

display.setStatusBar( display.HiddenStatusBar )

function cat1()
    displayCategory(1)

    print( "clicked 1" ) 
end

function cat2()
    displayCategory(2)

    print( "clicked 2" ) 
end

function cat3()
    displayCategory(3)

    print( "clicked 3" ) 
end

--category display
function displayCategory(cat)

    if (cat == nil) then
        cat = 1
    end

    print( cat )

    if (cat == 1) then
        local item1 = display.newRect(100,100,100,100)
        item1:setFillColor(255,255,0)
    elseif (cat == 2) then
        local item2 = display.newRect(200,100,100,100)
        item2:setFillColor(255,0,255)
    elseif (cat == 3) then
        local item3 = display.newRect(300,100,100,100)
        item3:setFillColor(0,255,255)
    end

end

--category buttons
local catBtn1 = display.newRect(0,0,50,50)
catBtn1:setFillColor( 255,0,0 )
catBtn1:addEventListener( "tap", cat1 )

local catBtn2 = display.newRect(60,0,50,50)
catBtn2:setFillColor( 0,255,0 )
catBtn2:addEventListener( "tap", cat2 )

local catBtn3 = display.newRect(120,0,50,50)
catBtn3:setFillColor( 0,0,255 )
catBtn3:addEventListener( "tap", cat3 )

现在,每次我点击我的按钮时,相应的项目都会弹出,但当我点击任何其他按钮时并没有消失。我该怎么做呢?

4

1 回答 1

1

首先,在 displayCategory 函数之前创建这些项目。然后将它们设置为不可见,如下所示:

local item1 = display.newRect(100,100,100,100)
item1:setFillColor(255,255,0)
item1.isVisible = false

稍后您将适当的项目设置为可见或不适当,如果是第 2 项,它将是

item1.isVisible = false
item2.isVisible = true
item3.isVisible = false
于 2012-12-12T15:37:32.950 回答