Show Layer After Variables Met
Sep 18, 2018
By
Mike DiFonzo
I would like Layer 9 to only Show only after the learner has visited the other 8 layers. I've used True/False Variables for when a layer is visited but i just can't seem to get it to work correctly.
I searched the discussions and tried a few different methods but I'm missing something really simple. It appears that if you set it to when the timeline ends or starts, the variables need to be set to True at the exact moment in time (like a snapshot) and that doesn't work.
17 Replies
You only need to use the timeline starts if you leave and revisit the page. If you remain on the slide then you can use a "when variable changes" trigger.
Can't look at you file right now, but one way to do this is use a T/F to track a layer visited. Then create a T/F variable to unlock layer 9. And that one would be set to true on the condition that all of the other 8 are also True.
Hope that makes sense.
Hi Michael,
I got the slide to work. Basically you had two variables doing the same thing. One on the base layer and one on each layer. I removed the one from the layer. I think the problem you were running into is how to trigger layer 9 to show. You needed to tell SL what action to trigger layer 9 on so I reworked the variables and I have it working in the attached example. If you have any more questions about what I did, feel free to ask.
Tracy,
Thanks for getting it to work. Looks like the Trigger to change the variable TimeOutComplete has to be set for every object though.
I was trying to be more efficient and use one trigger to change the TimeOutComplete variable to True but looks like there isn't a way to do that. In coding you can use one IF statement to change the variable to True if all of the other variables are also True.
Mike
I just noticed an issue. The final layer clicked (Item 08) doesn't display because TimeOutComplete = True making Layer 9 appear. Layer 9 over-rides the previous.
How can I put some sort of pause so that Layer 08 displays and then Layer 9 does. It's supposed to be automatic but enough time for the learner to read. I suppose I could get rid of the layer and make it an object on the base layer with a delayed timeline display.
I think a very easiest way to do it is to move it on the timeline of Layer 9. Have the picture start like 3 or 5 seconds after the layer opens. That is the quickest easiest way.
Tracy
You could forgo the variables and use visited states and then show layer nine when the states of 8 objects are visited.
Here's a demo: go to slide 2
Tom,
Originally, I started trying to use the visited states but there wasn't such a state since it was grouped. Thanks for the tip on typing directly in the oval. This was a template from Content Library and wish they didn't use groups.
I believe I still have an issue with your method though. Item 08 has a text banner on the bottom. When all ovals are visited Layer 9 displays another text banner on top of Item 08 so that 08 never displays (in my uploaded file I had the cartoon displaying in upper-corner as an example).
How do I get Layer 08 and 9 to be viewable using your method? Move layer 9 to the base layer and delay the time?
Mike
They use groups so it's easier for the less experienced to see how things are set up.
I have spent way too much time on this but here's what I've found:
Everything looks good EXCEPT the base layer pauses and doesn't resume to display the final summary textbox. I know I can just display the summary in another area but I'd like to know how to get this to work for the next time.
You'd need a way to close the layer in order to display the base layer again. The base layer is resuming. I checked by moving this text box:
I'm not getting the full picture of your file as I do not see a Layer 9 in your LayeredVariablePaused.story shared above, but hopefully that information shared will help you out.
Finally had time to focus on this and was able to solve.
I used the variable TimeOut01 = True on base layer whenever an oval was clicked (going to another slide layer). TimeOutComplete = True when the user clicks on an oval with the Condition If all of the other variables also = True.
I paused the timeline on base layer when timeline starts. This was so that the summary textbox wouldn't appear until all layers had been visited and would appear over the top of the last textbox.
I resumed the timeline when TimeOutComplete = True (when all layers had been visited). I had the summary textbox appear 4 seconds later on the timeline. This gave time for the last layer to display it's text and then the summary could display on top of it.
Thanks for the assist in getting me there.
Brilliant work, Michael! Thanks for sharing your solution with us. 🌟
Glad to hear it, Michael! Thanks for updating us too.
Thank you! This solved a very frustrating problem I was having! So easy compared to what I was trying to do with T/F variables!
Great advice as always my friend I was getting frustrated trying to do it with Variables. Took only a few minutes to switch to states. Everything snapped into place.
~Jeff
Glad that this older conversation was able to help you as well, Jeff. I appreciate you chiming in to share and welcome to E-Learning Heroes. 😊