Changing State of an Object on a different slide

Jan 18, 2013

I'm trying to find out a way to change the state of an object on a Slide A if a button on Slide B is clicked. Is that possible?

50 Replies
Kevin Thorn

Hey Kristy,

Yes, it is possible. You'll need to use variables for this. 

  1. Name your object on Slide B in the timeline such as Object 1. If you have more than one object, name them accordingly.
  2. Create a True/False variable and set it's initial value to False. Name the variable something similar to the object you want to change such as object1
  3. Add a trigger to the button on Slide A - "Adjust Variable: object1 to True when user clicks"
  4. On Slide B, add a Player Trigger: "Change the state of: Object 1 to [desired state] when timeline starts.

Give that a go. Should work fine.

Michael Grady

I need some help on this one... I'm trying to set up 3 slides (A, B, C);  Slide A has many layers and also 2 buttons (b1 initial state visible and b2 initial state hidden) which link to Slide B or C.  Slides B and C have buttons which link back to Slide A.  Once a user completes Slide (B or C) I want them to return to Slide A with the state of b1 hidden and b2 visible.

I'm fairly certain that I need to use Variables (true/false) but I'm really getting hung up on this one... any help would be appreciated.

Nicole Legault

Michael, 

You're right about the True/False variable

Here are the steps I followed to create a .story example for you:

  • Create a True/False variable called SlideVisited with default value of false
  • On slide B or C, create a trigger at slide level that adjusts variable "SlideVisited" to true when Timeline starts
  • on Slide A, create trigger that adjusts the state of button 2 from "Hidden" to "Visible" when variable "SlideVisited" is true
  • Create another trigger that adjusts the state of button 1 from "Visible to Hidden" when variable "SlideVisited" is true

I hope this helps clarify... let me know if you have any additional questions...

Wendy Farmer

Hi Andrew

your slide trigger on the menu slide doesn't have a state assigned. Your rectangles have a normal and selected state so when I click rectangle 1 it changes to selected state with the tick but you don't have a visited state...so when I return to the menu I would want to see the visited state (can be a different colour or the tick could be on the visited state)

 

Rahul ISL

Well, I found the solution to my concern on another thread. It was a question raised by Melissa and answered by Tim.

"this is a common problem people have.  The trigger "when variable changes" only works on the slide you are on.  What you probably want is a trigger on each slide that says change state when timeline starts with a condition of true (for being visited on any slide)

I hope I am being clear.  If you want to post your file I or someone else would be glad to help with it."

Thanks Tim and Melissa :)

Rahul ISL

Hi Wendy, you are right, variables are meant to be global and they are behaving so. It is just that when you use the trigger 'when variables change' I guess it checks for a local (or in slide) change. I guess staff members can throw more light on this. 

But if you make a trigger as proposed by Tim then it is able to register a change. I tested it on my file, works perfectly fine now.

Somehow the functionality of 'when variables change' conflicts with use case.

Rinnai America

I am having this same issue.  I believe I have followed the instructions you gave, but I am still not getting the results I am expecting.  If you launch scene 1 a click the first option and go through the slides and return to 1.1.  The red start should be changed to green completed.   Please advise.

Chris Wall

I do this a lot. Actually, I typically have an additional state that I call something like Topic_Started. My thought is that if someone's accessing units of instruction from a main menu, you might want to mark which ones have been started and not finished. I essentially to the same thing, though. 

Whatever you click to jump to one the units of instruction will have at least three triggers:

  • One to set a topic_started T/F variable to True
  • One to set the button (or whatever) to its Topic_Started state
  • A third to jump to the slide that starts that unit of instruction

Then, when I click Next to exit that topic and return to the menu, I use one trigger to set the topic_complete T/F variable to True, and a second to jump back to the menu page.

The button I clicked to go to the topic can have three states:

  • Normal (if the topic_started and topic_complete T/F variables are both False
  • Topic Started (if topic_started = True, and topic_complete = False)
  • Topic Completed (if topic_complete = True; note that I don't really care about the topic_started T/F variable's state here because, where this state is concerned, topic_started will always be True.

If someone has a more efficient way of doing this, please let me know.

Chris Wall

Andrew:

I used the approach I described below to fix this (though I did it in SL2, I taught myself this technique in SL1.

  • Create a new state for Rectangle 1 called Done or Complete or something like that.
    • Edit the Selected state to copy its check mark.
    • Edit the (new) Done state to paste the check mark in the rectangle and format it so it's green.
  • Create two T/F variables: LessonStarted and LessonDone. Have them default to False.
  • Click Rectangle 1 and add three triggers:
    • Change state of Rectangle 1 to Selected when the user clicks (note, you may want to add a condition to prevent this from happening if the state of the button is already done)
    • Set LessonStarted equal to True when the user clicks
    • Jump to 3.1 when the user clicks

      Note that the jump slide trigger must be the last trigger in the sequence. If you jump before you do the other two triggers, they'll never occur because you'll have left the slide before you get to them.
  • Now go to Slide 3.1 and add two triggers:
    • Set LessonComplete equal to True When the user clicks the Next button
    • Jump to 1.1 when the user clicks the Next button

      Again, the Jump must be the last trigger for the reason stated above.
  • Go back to slide 1.1 and add a slide trigger to 1.1 that says, "Change state of Rectangle 1 to Done when the timeline starts If LessonComplete is equal to True

That should do it for you. Note that if you're going to use these rectangles as buttons to power navigation through your course, you may want to use buttons instead.

You'll also need to make LessonStarted and LessonDone variables for each button on your menu. They all need to have unique names.

If you format the first rectangle or button and get it working the way you like in terms of the states, use the format painter tool to format the other buttons/rectangles. It'll bring the states over so you can save a little time.

Walt Hamilton
Chris Wall

Change state of Rectangle 1 to Selected when the user clicks (note, you may want to add a condition to prevent this from happening if the state of the button is already done)

 

If you have a state named Selected, be aware that this is a built-in state, and comes with a set of hard-wired triggers, one of which sets the state to selected when it is clicked. Triggers that you have written may conflict with these built-in triggers with what are usually undesirable and unpredictable results. Experience has shown that it is best either to use the built-in state names and triggers, or to create custom state names to use with custom triggers.

Eva Herreros

Hi gang, 

I'm wondering if somebody can help me sort out the variables in this sample file as they are not doing what they are supposed to. I have two different scenarios but neither is working: 

- On slide 3.5 (Summary section 2) I have set up a True/False variable that changes from False to True when the user clicks on Homebutton2. At the same time, the user is redirected to slide 1.2 Course summary. The variable is called Completed2. 

The idea is that they either land back on the base layer of Course Summary but the state has changed to Completed and instead of seeing again the course objectives they see an image saying Completed (I have set up a state for this) and then they click on the following tab. This could happen after each of the sections is completed so whenever the user clicks the Homebutton after completing a section they land back here. 

Alternatively, they could land back on layer 2 (where section 2 starts) but  instead of seeing the specific objectives for that section, they see a Completed image (this also has a different state) and the proceed to the next tab. The same would happen after completing section 3, in this case they'll go back to layer 3 etc. 

At the moment, I can't get either option to work even if I set the trigger to change the state when the timeline starts. I've tried different options with the player settings (automatically decide/resume saved state/reset state) both on the base layer and on layer 2 but after a couple of hours I am not getting anywhere...

I'm attaching the file so you can see exactly what I'm doing and where I'm going wrong... Thanks in advance for any help, 

Eva 

Walt Hamilton

Eva,

There may be other problems, but start with this trigger:

 

 

The user clicks the Homebutton2, and it jumps to the summary slide before it gets a chance to change the variable. In a series of triggers, the jump should always be the last, because once  the system comes to it, it jumps and ignores the rest of the triggers.

 

Wendy, it is a zipped form of the .story file

 

 

This discussion is closed. You can start a new discussion or contact Articulate Support.