Help needed with buttons sets and triggers/variables

Mar 03, 2022

Hi all,

I have a rating slide that is set up with a handful of button sets. I need to have the next button disabled until the learner has answered EACH of the the ratings/button sets. I've looked at many discussions, but can't figure this one out. In the attached file, I don't have much set up because it wasn't working correctly, so looking for help on how to do this. I do have some variables created.

It seems like I should have a T/F variable for each button set and have them start as False. But I can't figure out how to have the button set be "True." Maybe this isn't possible and wondering if I might have to set conditions for every single button, which seems daunting...and I'm not sure how to do it.

Thanks in advance!

16 Replies
DWK Graphics

So do I need to set triggers on each button in a set that the other buttons are false when they select one (that becomes true)? I don't know how to access/adjust the variable associated with the button sets. I created some variables for the button sets, but there are built in ones by nature of creating a button set (right?) and not sure how to work with those. Not sure if that makes sense.

Tracy Parish

I might do it this way....

My initial thinking before testing your slides, was what if they select something from row one, variable could be triggered to true.  But, if they then deselect it their choice and do not make a new choice the variable is still true and it's a lot of triggers to create to "make true if this and if false this".  However, in your example once something from row 1 is selected, it's selected, you can change your mind and pick something else in that row, but row 1 is done.  So the variable route would work.

My solution (attached) is to use states instead.  I added an extra button that is off slide, it essentially works as a T/F trigger, but going back to my statement above, I wanted to make sure that as long as anything in row 1 is selected - the button beside it is marked "true" (state is changed).  But I also wanted to make sure that if they deselected anything from the first row that it is also captured.

So for each button of screen the state changes to "complete" (I like to use my own state names) if any of the items in the corresponding row are selected.  If all of them are deselected, then when the person hits next a layer will come up showing they missed something and to go back and check.

My grade 10 computer teacher permanently stuck in my mind programming for all the "what ifs".  If it was a t/f question, he would answer maybe.  ;)

Walt Hamilton

For anyone that reads this thread, I'd like to answer DWK's questions. 

So do I need to set triggers on each button in a set that the other buttons are false when they select one (that becomes true)?

No, the point of a button set is that if one is selected, all the others are not selected. You don't necessarily need that function, so I probably confused some people when I said button set. I was using it in your sense. As I understand your original post, you only need to know if one of the buttons in a "set" (or perhaps more clearly "group") has been clicked. (Set in the sense of a series of related buttons, not a formal "button set".) So your need is that if any of the three is clicked, that group is considered answered. That is why I suggested associating a variable with each group, and setting it to true when any one of the buttons was clicked. That means each button will have a trigger similar to "Set GroupOneVariable to true when button 1 is clicked", etc.

I don't know how to access/adjust the variable associated with the button sets.

The association is in your mind. GroupOneVariable is associated with the first group of buttons. These variables are not already there, you have to create them.

One form of access is the previously mentioned trigger that sets their value. The rest of the access is to create another trigger for each variable, similar to "Change state of Next button to Normal when GroupOneVariable is changed if GroupTwoVariable = true AND ifGroupThreeVariable = true. This is all based on my understanding that it doesn't matter if the learner clicks other buttons out of group 1, or which one of that group they click, only that there must be one chosen out of each group.

Walt Hamilton

The problem with 3Keys is this trigger:

or more accurately, that there is only one like it. This works fine if Layer1 is visited last, because then the other variables are true. But if Layer1 is visited first, the others aren't true, and the trigger doesn't fire again because Layer1Visited isn't changed again. You need a trigger just like this one for the layer 2 variable, and the layer 3 variable. That way, no matter what order the learner follows, the third one will change the state on Next button 1.

FYI, this is a habit that can get you in trouble:

 

You can get away with this trigger order because you are staying on the same slide. The new layer is shown, then the variable is changed. But if the first trigger jumps to a different slide, it doesn't work. The jump interrupts the trigger flow, and the triggers that follow it are not executed, so the variable never gets set.

It works here, but it is a bad habit to get into to move first, and try another action after the move.

DWK Graphics

Thanks Walt. I've added those 2 additional triggers for Layer2 and 3 variables and also had to add the same trigger for Application1, 2, and 3 variables. Of course this only works when I have the True trigger set for each layer. Not sure how to get around having those 2 triggers on each layer that you're cautioning me about. But I'll keep in mind if using triggers to other slides.

I'm a pretty new user, so still trying to figure it all out. Thanks for your help!

DWK Graphics

Final challenge I'm having...when I revisit the 3 keys slide, I can't get the Next button to return to normal after clicking through the layers/buttons. I've tried all 3 ways for revisit (saved state, initial state, automatically decide). Any thoughts on how to fix this?

Sounds like I need to reset the variables on this slide...

SOLVED....I reset the variables all to true when timeline starts. Thanks!