【问题标题】:displayGroups in CORONA SDK (LUA)CORONA SDK (LUA) 中的 displayGroups
【发布时间】:2015-05-22 01:39:23
【问题描述】:

我创建了一个本地组并将对象作为矩形插入屏幕上,然后使用 myGroup:removeSelf() 和 myGroup = nil。矩形和所有其他元素的自动内存也会被清空吗? (下一个代码)

cenarioGrupo = display.newGroup()

local chao = display.newRect( display.contentWidth*0.5, display.contentHeight*0.95, display.contentWidth, display.contentHeight*0.1 )[

cenarioGrupo:insert(chao)

--Then..
cenarioGrupo:removeSelf();   cenarioGrupo = nil;

和其他问题。如何在 createScene 函数中使用 cenarioGrupo,它只在函数 criarCenario 中创建?退货?整体创建?

local function criarCenario()
    cenarioGrupo = display.newGroup()

    local chao = display.newRect( display.contentWidth*0.5, display.contentHeight*0.95, display.contentWidth, display.contentHeight*0.1 )
    chao:setFillColor(1,1,1)

    cenarioGrupo:insert(chao)
end


function scene:createScene( event )
      local sceneGroup = self.view
      criarCenario()
end

【问题讨论】:

    标签: mobile lua coronasdk


    【解决方案1】:

    在 Corona 中,如果您创建一个显示组并向其添加显示对象(不是 android 的原生小部件),当您尝试删除显示组时,它的所有子项和容器也将被删除。

    关于你的第二个问题: 您可以使用 sceneGroup 作为 criarCenario 的条目,如下所示:

    function scene:createScene( event )
        local sceneGroup = self.view
        criarCenario(sceneGroup)
    end
    

    然后在您的函数中将您的显示组插入到场景组中:

    local function criarCenario(sceneGroup) -- use an entry
        cenarioGrupo = display.newGroup()
    
    
    local chao = display.newRect( display.contentWidth*0.5, display.contentHeight*0.95, display.contentWidth, display.contentHeight*0.1 )
    
    
     chao:setFillColor(1,1,1)
    cenarioGrupo:insert(chao)
    sceneGroup:insert(cenarioGrupo) -- here is the main change
    end
    

    您也可以通过返回您的 cenarioGrupo 并将其插入到 createScene 中的 sceneGroup 中来做到这一点:

    local function criarCenario()
        cenarioGrupo = display.newGroup()
        local chao = display.newRect( display.contentWidth*0.5, display.contentHeight*0.95, display.contentWidth, display.contentHeight*0.1 )
        chao:setFillColor(1,1,1)
    
        cenarioGrupo:insert(chao)
        return cenarioGrupo
    end
    
    function scene:createScene( event )
          local sceneGroup = self.view
          sceneGroup:insert( criarCenario() )
    end
    

    我自己更喜欢第二种方法,因为它提供了更松散的耦合。在第二种方法中,您的 criarCenario 函数与 createScene 更加分离。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      • 2012-05-08
      • 2014-01-28
      • 1970-01-01
      • 2013-03-23
      • 2019-06-15
      • 2012-02-06
      相关资源
      最近更新 更多