Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]

How do scenes get reloaded?
Started by psizzlepip Apr 30 2019 07:38 PM

No replies to this topic
scene composer reload gotoscene
This topic has been archived. This means that you cannot reply to this topic.
[TOPIC: post.html]


[GLOBAL: userInfoPane.html]
  • Observer

  • 1 posts
  • Corona SDK

I know they can be, because I found the documentation here:




It clearly states:


If you want to skip the cutscene approach, you can reload a scene from itself by calling:

local currScene = composer.getSceneName( "current" )
composer.gotoScene( currScene )


Oh, I so very much want to skip the cutscene approach. I'm not making a game as much as a game tool, a series of menus with random content, that would be great if I could "re-roll" the content without leaving the screen.


Through the use of composer.recycleOnSceneChange = true I'm able to get the scenes to refresh when navigating between them, but this does allow re-navigation as it were.


Navigation is being handled via the TabBar widget, handled by main.

local function onStreetsView( event )
	composer.gotoScene( "streets" )

local function onBuildingsView( event )
	composer.gotoScene( "buildings" )

local function onPeopleView( event )
	composer.gotoScene( "people" )

Ideally, the same TabButtons that load the scenes would also reload the scenes. But if I need to add another button for that, I'm open to the idea.


I tried putting the above code snippet into the on...View functions, for no effect. I found if I put in a composer.destroyScene() I can almost get something like it. It will reload once, and only once after launch, and then throw errors and trouble. Not a solution.


In the scene itself, in the scene:create, scene:show, scene:hide, scene:destroy and even at the module level itself, before and after the scene declaration: local scene = composer.newScene(). All of these locations do Bad Things™. Namely some variation of:


ERROR: Runtime error
                    bad argument #1 to 'find' (string expected, got nil)
                    stack traceback:
                        [C]: in function 'error'
                        ?: in function 'gotoScene'
                        main.lua:17: in function '_onPress'
                        ?: in function '_setSelected'
                        ?: in function '?'
                        ?: in function <?:190>


So, where am I supposed to put that code snippet? Or more to the point, what am I actually supposed to do to get scenes to reload without a cutscene?