[ERROR] Passing parameters to the same Scene

Hi :slight_smile:

I’m developing a magzine reader, so sometimes I need to go back to the same scene, but with another image to display.

For this, on storyboard.gotoScene(), I send to the new scene (or the same scene) some other parameters as  page,edition number, etc…

Everything works fine If I’m going for a different scene, but If I’m going to the same scene and I try, for example, to use an effect as fadeout I have this kind of error: (erro1)

Also, sometimes, even without any effect on transition sometimes my parameters aren’t passed and this happens : (error2)

I think I’m dealing wrong on how to finish the scene or pass those parameters.

Here’s the a code example:
 

local storyboard = require( "storyboard" ) require ("alagartaFunctions") local scene = storyboard.newScene() function scene:createScene( event ) local group = self.view end function scene:enterScene( event ) touchCount = 0 local group = self.view print("page number: ",event.params.page) print("edition number: ",event.params.numberOfEdition) numberE = event.params.numberOfEdition local extension = extension(numberE) pageBefore = event.params.page numberE = event.params.numberOfEdition print("Scene before: ",event.params.sceneBefore) if (event.params.Click == "config") then print("config") elseif (event.params.Click == "irPara") then print("irPara") else menuTop = display.newImage("menuTop.png",22,halfH) menuTop:rotate(-90) print(menuTop.x) print(menuTop.height) menuVoltarE = display.newImage("menuVoltarE.png",menuTop.x + menuTop.height+3,halfH) menuVoltarE:rotate(-90) menuIrPara = display.newImage("menuIrPara.png",menuVoltarE.x + menuVoltarE.height-7,halfH) menuIrPara:rotate(-90) menuConfig = display.newImage("menuConfig.png",menuIrPara.x + menuIrPara.height+27,halfH) menuConfig:rotate(-90) Menu = display.newGroup() Menu:insert(menuTop) Menu:insert(menuVoltarE) Menu:insert(menuIrPara) Menu:insert(menuConfig) function touchMenuTop (e) if(e.phase == "ended") then if (e.x \< 20 + menuTop.height and e.y \< menuTop.width\*(3/4)-halfW ) then local options = { params = {numberOfEdition = numberE, page = pageBefore, sceneBefore = "readingSceneMenu"} } storyboard.gotoScene("readingScene",options) end end end function touchMenuVoltarE (e) if (e.phase == "began") then menuVoltarE = display.newImage("menuVoltarEClick.png",menuTop.x + menuTop.height+3,halfH) menuVoltarE:rotate(-90) elseif (e.phase == "ended") then local options = { params = {numberOfEdition = numberE, sceneBefore = "readingSceneMenu"} } storyboard.gotoScene("menuScene",options) end end function touchMenuIrPara (e) if (e.phase == "began") then menuIrPara = display.newImage("menuIrParaClick.png",menuVoltarE.x + menuVoltarE.height-7,halfH) menuIrPara:rotate(-90) elseif (e.phase == "ended") then local options = { params = {numberOfEdition = numberE, page = pageBefore, sceneBefore = "readingSceneMenu", Click = "IrPara"} } storyboard.gotoScene("readingSceneMenu",options) end end function touchMenuConfig (e) if (e.phase == "began") then menuConfig = nil menuConfig = display.newImage("menuConfigClick.png",menuIrPara.x + menuIrPara.height+27,halfH) menuConfig:rotate(-90) elseif (e.phase == "ended") then local options = { params = {numberOfEdition = numberE, page = pageBefore, sceneBefore = "readingSceneMenu", Click = "Config"} } storyboard.gotoScene("readingSceneMenu",options) end end menuTop:addEventListener("touch", touchMenuTop) menuVoltarE:addEventListener("touch",touchMenuVoltarE) menuIrPara:addEventListener("touch",touchMenuIrPara) menuConfig:addEventListener("touch",touchMenuConfig) Menu = display.newGroup() Menu:insert(menuTop) Menu:insert(menuVoltarE) Menu:insert(menuIrPara) Menu:insert(menuConfig) end end function scene:exitScene( event ) local group = self.view --storyboard.removeScene("readingSceneZoom") local function removeMenu() Menu:removeSelf() Menu = nil menuTop:removeSelf() menuVoltarE:removeSelf() menuIrPara:removeSelf() menuConfig:removeSelf() menuTop,menuVoltarE,menuIrPara,menuConfig = nil end transition.fadeOut(Menu, {time = 500, onComplete = removeMenu}) end function scene:destroyScene( event ) local group = self.view end scene:addEventListener( "createScene", scene ) scene:addEventListener( "enterScene", scene ) scene:addEventListener( "willExitScene", scene) scene:addEventListener( "exitScene", scene ) scene:addEventListener( "destroyScene", scene ) --------------------------------------------------------------------------------- return scene

Thank you,

Pedro

I don’t believe that Storyboard supports passing parameters to itself.

Rob

I don’t believe that Storyboard supports passing parameters to itself.

Rob