Storyboard Problem return

Hi

I’m made app mobile with storyboard

I have a problem when return in menu.lua
Structure my project as following:

  1. Start
-- include the Corona "storyboard" module  
local storyboard = require "storyboard"  
  
-- load menu screen  
storyboard.gotoScene( "menu" )  
  

– Call file menu.lua
Structure file menu.lua

function scene:createScene( event )  
...  
  
end  
....  

When I press the button Fiori

 -- create a widget button for info(which will loads level1.lua on release)  
 infoBtn = widget.newButton{  
 label="Fiori",  
 labelColor = { default={255}, over={128} },  
 default="button.png",  
 over="button-over.png",  
 width=154, height=40,  
 onRelease = onPlayBtnInfo -- event listener function  
 }  

I call function onPlayBtnInfo

-- 'onRelease' event listener for playBtn  
local function onPlayBtnRelease()  
  
 -- go to level1.lua scene  
 storyboard.gotoScene( "level1", "fade", 500 )  
  
 return true -- indicates successful touch  
end  

So I can to see the objcets in file level1.lua
Now began my problem
When I return in menu.lua as following:

  
local function onViewMenu()  
  
 -- go to level1.lua scene  
 storyboard.gotoScene( "menu", "fade", 500 )  
 return true -- indicates successful touch  
end  
  

I can see the objcets in menu file but when I press again my button(Fiori --> onPlayBtnInfo() )

I don’t see the objcets in level1.lua,that previously saw.
Can I help me?

[import]uid: 100428 topic_id: 24204 reply_id: 324204[/import]

Try in create scene

group:insert(infoBtn) [import]uid: 69841 topic_id: 24204 reply_id: 97706[/import]

Because I previously saw the object in file level1.lua?
I don’t change the function createscene

Have try at to make a mobile app that storyborad?
[import]uid: 100428 topic_id: 24204 reply_id: 97710[/import]

infoBtn is local or global?
Please more code.
[import]uid: 69841 topic_id: 24204 reply_id: 97714[/import]

Thank you for reply

This code is scene:createScene in level1.lua

-- Called when the scene's view does not exist:  
function scene:createScene( event )  
 startGallery()  
--associo i pulsanti a funzioni e template  
 buttonwww = display.newImage("www.png", 0, 390)  
 buttontel = display.newImage("telefono.png", 100, 390)  
  
--creo il pulsante menu  
bMenu = widget.newButton{  
 label="Menu",  
 labelColor = { default={255}, over={128} },  
 default="button.png",  
 over="button-over.png",  
 width=154, height=40,  
 onRelease = onViewMenu -- event listener function  
 }  
 bMenu.view:setReferencePoint( display.CenterReferencePoint )  
 bMenu.view.x = 150  
 bMenu.view.y = 420  
  
 --groupImgButton:insert(buttonwww)  
 --groupImgButton:insert(buttontel)  
  
 buttonwww:addEventListener("tap", openmylink)  
 buttontel:addEventListener("tap", callPhone)  
end  
  
function startGallery(event)  
--carico le immagini  
  
 myImages = {  
 "foto1.jpg",  
 "foto2.jpg",  
 "foto3.jpg",  
 "foto5.jpg",  
 "foto6.jpg",  
 "foto7.jpg",  
 "foto8.jpg"  
  
 }  
-- chiamo la funzione per le slide  
 g1:insert(slideView.new( myImages,nil ))  
 --slideView.new( myImages,nil)  
  
 return true  
  
end  

When I press Button Fiori I see the objcets that i make in CreateScene,

but

when I call scene:exitScene and then return in level1.lua from menu.lua

I don’t see the objcet that previously saw in file level1.lua

function scene:exitScene( event )  
 local group = self.view  
  
 print("Inizio a rimuovere gli oggetti")  
  
 buttonwww:removeSelf()  
 buttontel:removeSelf()  
 g1:removeSelf()  
 if bMenu then  
 bMenu:removeSelf() -- widgets must be manually removed  
 bMenu = nil  
 end  
  
end  
  

Do you understand?

[import]uid: 100428 topic_id: 24204 reply_id: 97726[/import]

Seem that I can’t call several times level1.lua
This is a limitation of Corona Sdk with storyboard?
[import]uid: 100428 topic_id: 24204 reply_id: 97728[/import]

In level1.lua at top declare the images as local
local buttonwww
local buttontel

local …

try that
SOrry for my english [import]uid: 69841 topic_id: 24204 reply_id: 97731[/import]

Thank for your reply

I saw that when I recall the scene level1 for second time,

I have break code here

  
function scene:enterScene( event )  
print("scene:enterScene")  
 local group = self.view  
end  
  

Not called the function as following

-- Called when the scene's view does not exist:  
function scene:createScene( event )  

[import]uid: 100428 topic_id: 24204 reply_id: 97734[/import]

Ara you removing the leve1.lua when exit to another scene?

If you have your objects in one group when exit the objects are removed
.

[code]
local storyboard = require( “storyboard” )
local scene = storyboard.newScene()
local image
local text1

local function onSceneTouch( self, event )
if event.phase == “began” then

storyboard.gotoScene( “scene2”, “slideLeft”, 800 )

return true
end
end

function scene:createScene( event )
local group = self.view

image = display.newImage( “bg.jpg” )
group:insert( image ) – Putting image inside group

image.touch = onSceneTouch

text1 = display.newText( “Scene 1”, 0, 0, native.systemFontBold, 24 )
text1:setTextColor( 255 )
text1:setReferencePoint( display.CenterReferencePoint )
text1.x, text1.y = display.contentWidth * 0.5, 50
group:insert( text1 ) – Putting text1 inside group

end
function scene:enterScene( event )

print( “1: enterScene event” )

end
function scene:exitScene( event )

print( “1: exitScene event” )
– Here all the objects inside group are removed…like --group:insert(image) or group:insert(text1)
– remove touch listener for image

image:removeEventListener( “touch”, image )

end

function scene:destroyScene( event )

print( “((destroying scene 1’s view))” )

end


– END OF YOUR IMPLEMENTATION

– “createScene” event is dispatched if scene’s view does not exist
scene:addEventListener( “createScene”, scene )

– “enterScene” event is dispatched whenever scene transition has finished
scene:addEventListener( “enterScene”, scene )

– “exitScene” event is dispatched before next scene’s transition begins
scene:addEventListener( “exitScene”, scene )

– “destroyScene” event is dispatched before view is unloaded, which can be
– automatically unloaded in low memory situations, or explicitly via a call to
– storyboard.purgeScene() or storyboard.removeScene().
scene:addEventListener( “destroyScene”, scene )


return scene [import]uid: 69841 topic_id: 24204 reply_id: 97737[/import]

And don’t forget remove listeners or timers when exit the scene.
[import]uid: 69841 topic_id: 24204 reply_id: 97739[/import]