【问题标题】:Remove items lua/Corona删除项目 lua/Corona
【发布时间】:2012-12-13 21:06:48
【问题描述】:

非常快速,可能很简单的问题......但它让我在过去 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 )

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

【问题讨论】:

    标签: lua coronasdk


    【解决方案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
    

    【讨论】:

    • Ooooooooooh 不知道 lua/Corona 支持 isVisible 参数...非常整洁!但是,这将如何影响内存,当它们设置为不可见时,图片(矩形稍后将被图像替换)是否仍然加载?
    • 是的,但是加载和卸载东西(特别是在存在垃圾收集器的情况下)是个坏主意,除非你真的需要内存。
    • 我想这不会是一个大问题,但良好的内存管理会很好......特别是考虑到移动设备的性能更低一些。我会问你所说的垃圾收集器是什么意思,但我不想过多地破坏这个线程。感谢您的解决方案!
    • Corona 使用 Lua,它有一个垃圾收集器,有时往往不会收集图像,创建和删除东西太快有时会导致应用程序崩溃。预先加载内容并在适当的时候隐藏和显示它们会占用更少的内存。
    • 嗯,你知道的越多...谢谢!
    猜你喜欢
    • 2021-11-23
    • 2013-07-11
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2016-10-16
    • 2013-06-04
    相关资源
    最近更新 更多