Delete previous scene from memory

Hi guys,

Can you help me with below “level.lua” code  :smiley:

What should I do that when I hit “backBtn” level.lua display objects are deleted from memory?

In below configuration, when I hit “backBtn” I navigate back to menu.lua, but unfortunately level.lua memory is not deleted  :frowning:

local composer = require( "composer" ) local scene = composer.newScene() -- ----------------------------------------------------------------------------------------------------------------- -- All code outside of the listener functions will only be executed ONCE unless "composer.removeScene()" is called. -- ----------------------------------------------------------------------------------------------------------------- display.setStatusBar(display.HiddenStatusBar) -- most commonly used screen coordinates local centerX = display.contentCenterX local centerY = display.contentCenterY local screenLeft = display.screenOriginX local screenWidth = display.viewableContentWidth - screenLeft \* 2 local screenRight = screenLeft + screenWidth local screenTop = display.screenOriginY local screenHeight = display.viewableContentHeight - screenTop \* 2 local screenBottom = screenTop + screenHeight ----------------------------------------------------------------  local physics = require("physics") math.randomseed( os.time() ) --------------------------------------------------------------- GAME CHOICE local SpritesBallons = require("spriteBallons") local whichPlayer physics.start() physics.setGravity(0, 10) physics.setDrawMode( "normal" ) local previousScene = composer.getSceneName( "previous" ) if(previousScene~=nil) then       composer.removeScene(previousScene)       print("PREVIOUS SCENE REMOVED: " .. previousScene)        end local memTimer local driftToRight local spawnTimer local createLeftBallons local function goSomewhere(event) local goto = event.target.id local options = {effect="crossFade", time=300} composer.gotoScene( goto, menu ) end local function setUpDisplay(grp) local bg = display.newRect( grp, screenLeft, screenTop, screenWidth, screenHeight ) bg.x = centerX bg.y = centerY bg:setFillColor(1, 0.68, 0.26) local title = display.newText( grp, "Level Scene", centerX, centerY, "Helvetica", 48 ) local ground = display.newRect( grp, screenLeft, screenBottom, screenWidth\*3, 30 ) ground:setFillColor(1, 0.03, 0.02) ground.objType = "ground" physics.addBody ( ground, "static", {density=1, friction=0, bounce=0}) local backBtn = display.newImageRect ( grp, "images/backbtn.png", 53, 52) backBtn.x = screenLeft +backBtn.width\*0.5 backBtn.y = screenTop + backBtn.height\*0.5 backBtn.id="menu" backBtn:addEventListener("tap", goSomewhere) end    ----------------------------- CHECK MEMORY local function checkMemory()    collectgarbage( "collect" )    local memUsage\_str = string.format( "MEMORY = %.3f KB", collectgarbage( "count" ) )    print( memUsage\_str, "TEXTURE "..(system.getInfo("textureMemoryUsed") / (1024 \* 1024) ) ) end -------------------------------------------------- CHECK MEMORY -- "scene:create()" function scene:create( event )     local sceneGroup = self.view     -- Initialize the scene here.     -- Example: add display objects to "sceneGroup", add touch listeners, etc.     setUpDisplay(sceneGroup)          function createLeftBallons(myGroup) local sprite\_info\_baloon1 = SpritesBallons[math.random(#SpritesBallons)] local tmp = display.newSprite( sprite\_info\_baloon1.image\_sheet, sprite\_info\_baloon1.sequence\_data ) tmp.x = screenLeft-tmp.width tmp.y = math.random((screenTop - tmp.height), (screenBottom-100)) myGroup:insert(tmp)       tmp:setSequence("flyLR") tmp:play()    local times = math.random(1000, 3000) driftToRight = transition.to ( tmp,  { time = times , x = (screenRight+(tmp.width\*2)), y= screenRight+100 } ) return tmp end      function whichPlayer()     createLeftBallons(sceneGroup)     end      end -- "scene:show()" function scene:show( event )     local sceneGroup = self.view     local phase = event.phase     if ( phase == "will" ) then         -- Called when the scene is still off screen (but is about to come on screen).     elseif ( phase == "did" ) then         -- Called when the scene is now on screen.         -- Insert code here to make the scene come alive.         -- Example: start timers, begin animation, play audio, etc.                  memTimer = timer.performWithDelay( 1000, checkMemory, 0 )        spawnTimer = timer.performWithDelay ( 2000,  whichPlayer, -1 )                      end end -- "scene:hide()" function scene:hide( event )     local sceneGroup = self.view     local phase = event.phase     if ( phase == "will" ) then         -- Called when the scene is on screen (but is about to go off screen).         -- Insert code here to "pause" the scene.         -- Example: stop timers, stop animation, stop audio, etc.                  physics.stop( )         timer.cancel ( memTimer )         timer.cancel ( spawnTimer )              elseif ( phase == "did" ) then         -- Called immediately after scene goes off screen.     end end -- "scene:destroy()" function scene:destroy( event )     local sceneGroup = self.view     -- Called prior to the removal of scene's view ("sceneGroup").     -- Insert code here to clean up the scene.     -- Example: remove display objects, save state, etc.          display.remove( grp )     grp = nil     display.remove( myGroup )     myGroup = nil     display.remove( sceneGroup )     sceneGroup = nil end -- ------------------------------------------------------------------------------- -- Listener setup scene:addEventListener( "create", scene ) scene:addEventListener( "show", scene ) scene:addEventListener( "hide", scene ) scene:addEventListener( "destroy", scene ) -- ------------------------------------------------------------------------------- return scene

Many, many thanks!  :slight_smile:

Ivan

Solved by deleting “SpriteBallons”.

Btw you could also do 

composer.removeScene("sceneName")

when changing scenes

Good Luck!

Solved by deleting “SpriteBallons”.

Btw you could also do 

composer.removeScene("sceneName")

when changing scenes

Good Luck!