Button on Master Changes State When Slide Changes

I have a button on the slide master that I want to use to toggle a variable. I also use the state of the button to show the current value of the variable (true or false). This works fine when on a given slide. However when I navigate to the next slide, the state of the button on the slide master resets to the "Normal" state.

Is there some way to keep the button on the master layer to preserve its current state despite navigating from one slide to the next?


8 Replies
Dane Boyington

I'm not sure that is what I am looking for. I want the state preserved from the previous slide.

For instance, if I use the button to control the variable "myVariable", then when myVariable=true, I want the button state to be Normal. When myVariable=false, I want the button state to be a custom state "FalseState".

So if I click the button on page 1 and set the button state to FalseState and myVariable=false, when I navigate to page 2 the button state should still be FalseState. Right now if I go to slide 2, the button state changes to Normal and so the button state and the value of myVariable are out of sync.

Jon Xie

Button states cannot keep consistent across slides, but the Variable can. Therefore, in your case, you'd better use buttons to toggle other action on a certain condition like the changes of value of Variable or state of  Shape. If you don't mind sharing your .story file, just upload it and let me try .

Dane Boyington

It looks like this can be handled with a couple of extra triggers on the slide master to reset the button on each page:

Change state of button to Normal

When timeline starts

If myVariable=true

Change state of button to FalseState

When timeline starts

if myVariable=false

I haven't checked it thoroughly to see if it can get messed up, but it seems to work on a simple test lesson. I didn't know that the timeline trigger works well on the master layer.

Dane Boyington

Okay, there are some problems with this. On slide with interactions, the button won't update, and I also have problems controlling playing audio. I presume the different handling of the timeline on interaction pages is causing this. What I want is a button that controls whether the audio narration is played on each page or not.

So is it possible to have a button whose state reflects the current value of a variable, even if the value of that variable was changed on another page?

And is it possible to control whether a sound is played based on that variable? I had used:

Play media

When timeline starts

If myVariable=true

but if I start the audio on this page, go to the next page and turn myVariable to false, and then navigate back to the first page, the audio plays anyway.


Donna Morvan

Hello Dane,

If I am understanding what you want to do correctly then I advise you to start considering not using the master slide for this persistent button.

I find that using the master slide for a persistent button works best if that button is expected to behave in one way across all slides. But judging from what you're trying to do, this button seems to be expected to behave differently and trigger different elements in each slide.

So if it were me, I'd look into putting this button in the slide itself and program the triggers there.

Good Luck,


Dane Boyington

I didn't want to put the button on every page because of the large number of pages involved, and because it still is hard to get it to show the current state of the variable on interaction pages where you cannot restart the timeline on revisits. Therefore I went with a button on the master that does not use states, and a text string below it showing the current state of the variable.

I still had a problem with controlling the audio on the interaction pages. The only way I could do that is to have two triggers:

Play audio when timeline starts if myVariable=true

Stop audio when timeline starts if myVarialble=false

Why using only one won't work, but using the two together does work I'm not quite sure, but it seems to be a handy trick if you want a universal control for narration that works even on interaction pages.

Rebekah Massmann

Dane, I just wanted to say I was struggling with the same problem and your solution below worked for me. It sounds like I don't have as much going on with the slides, though. I just wanted to house my menu buttons on the master slide and have them retain their states (disabled, visited, etc.). Anyway, thanks for the ideas! I hope you were able to get your course working.

Change state of button to Normal

When timeline starts

If myVariable=true