Help: Freeform drag and drop, states appear to change but don't?

Hi, thank you for taking the time to read this and hopefully this makes sense:

I have a free form drag and drop question that has 10 items that can be dragged into 2 areas, one should change its state to drop_correct the other drop_incorrect.

I wanted to add a layer that appears if the user tries to submit the answer before moving all 10 items, I set a trigger to check if any of the 10 objects are equal to normal: (using the or statement condition) if any are set to normal this layer will appear (telling the user to drop all 10 items before submitting), the theory behind this was that when an item is dropped it's state is changed to either drop_correct or drop_incorrect.

I also had a trigger tied to the submit button that checks that all 10 items do NOT equal state normal (if any are normal the question will not submit) 

This has never worked, to make this simpler let’s stick with 1 object (rather than 10)

(note: I have unchecked the delay state change option in drag and drop options)

I’ve made sure the item has a normal, drop_correct, and drop_incorrect state (I made each state distinct so I know if the state is changing for testing purposes).

So when an item is dropped into the correct drop area the physical appearance of the item changes to the drop_correct state, but the question will not submit and the layer telling the learner to drop all the option still appears.

So to troubleshoot this I made a Boolean variable (default: false) and had a button set it to true if the state of the item is normal and a separate button that checks if it’s NOT normal and sets the variable to false.

Beforehand I test the first button to check if the status is normal (this will successfully change the variable from default: false to true), I will then test the second button (checking for not normal) and the boolean doesn't change (good the buttons work as i expected), Now after you drop the item into either drop zone, the appearance will change to drop_correct (or incorrect), the second button when pressed will now change the boolean to false (great, the second button works for sure), but i did press the first button again and it still changes the variable to true (indicating the items state is normal, but the other button will now also change it to false (indicating the item is NOT at state normal), both buttons work and the system thinks this item has both states? The layer telling the user to drop all items still appears and the submit button wont pass the NOT normal condition.

What’s going on?

 

TL:DR

Basically what I want to achieve is to prevent the user submitting the answer before all 10 items have been dropped, the user can drop any item in any order (all 10 items are visible from the start), they can move items between the two drop zones as often as they wish (the items will not be disabled). Then when they do finally submit a valid answer a new layer will appear highlighting in both green and red each item (duplicates on a different layer) showing which ones they got correct and which are incorrect (at this point it detects that drop_correct state (and incorrect) and changes the items colour perfectly fine).

My original attemp was to just do a check to make sure none of the 10 items have state normal and if any of them have states normal interrupt the submit button.

I believe I have over complicated this as there must be a reason why the states don’t change on a system level but they do change to the appropriate states appearance?

Thanks again for your time

 

James

7 Replies
James Dougan

Hey i can attach just the question slide, it turns out the variable checking if the item is not longer normal isn't working at all.

I've completely butchered this file, nothing is correctly labeled as it was just originally a testing slide, also i've changed so much trying to get around this problem that it barely makes sense to me anymore, but please take a look, but i warn you it's a horror to even look at the triggers :)

Please note: if you want to force a submit use the default players submit button (doesn't check for normal states)

Also use the item Ellipsis (with a small line of text under it) for testing purposes

Thanks

Wendy Farmer

Hey James

I have duplicated your slide and made quite a few changes to the triggers. I also created a new variable called 'allDropped' and used your variable 'num' in triggers.  I have 10 offstage shapes that are being used in the triggers to check whether each post it has been dropped. I unchecked the player submit button and use your Submit button in all triggers.

I may have butchered it or it may give you an idea how it could work...not sure about your coloured text - I was more concerned about getting the interaction to work.

Hope this helps

Walt Hamilton

As a point of information, the built-in states are just like all of us; they all think they are normal. When you query them in a condition, they respond with "Yes, I'm a normal dropped incorrect or selected state", etc.

In conditions, you have to check a negative, as in NOT selected, or NOT dropped correct, but NOT normal won't work . No one wants to publicly admit they aren't normal :) .