Question Regarding Trigger Actions: How do you sense when an object has been picked up?

Apr 10, 2017

Hi Everyone,

I am using a trial version of Storyline 360 to test it out to see if we would like to purchase it at work. I am working on creating a drag and drop interactive that allows students to drag a vocabulary word to a drop target spot next to the definitions. I have ended up resorting to using triggers to do almost everything (even though I created the drag and drop using the free form drag and drop question type).

 

1) I found that as soon and I added triggers, to my drag item(s), in order to do fun things like change the states of different items on the slide, that the auto "Return item to start point" stopped working. So as a work around I ended up having to create motion paths returning my objects back to where they began.

2)  Also I found that I could not control the state of a drag object whenever it returned to its starting point. It would always go to the Drop Incorrect state. So I ended up working with that situation and putting my "normal" state into the Drop Incorrect state and created my own custom "wrong" state and made triggers accordingly.

3) Then I ran into the issue that when I dropped an item onto a drop target and it changed to the appropriate state (either "Drop Correct" or "wrong"), it will change back to its "normal" state whenever I drag another drag item over the it. (I had set a trigger to change the drag items' states back to "normal" whenever they are picked up and being dragged again.) So, I thought that I would use variables on each drag item that would return true or false depending upon whether or not the drag item has be dropped on one of the drop targets or not. It was easy enough to set the trigger to change my "drag1Dropped" variable to "true" if I dropped "drag 1" onto any of the drop targets. But now I cannot seem to find a way to change the variable back to false that catches the fact that I have picked up and am holding the drag item with my mouse. I could use the "when Dragger Over" trigger again but I have already used it to change the state of my drag item back to normal while I am dragging it and my variable drag1Dropped == false. I have tried all sorts of things like using end of animation, state changes etc. to change my variable back to false, but none of those triggers do the job. What I really want to be able to do is sense when I pick my drag item up and carry it around, then turn my variable to false.

I am thinking that this all would most likely not be an issue if the auto "Dragged Over" did not encompass both where 1) the drag item is dragged and 2) whenever the drag item is being hovered over by another drag item. I am finding it so annoying to have those two situations bound together using the auto. But I cannot find a way to sense when I have picked up a drag item other than using the auto "Dragged Over".

Is there another way that I am not thinking about?

Thank you for any help with this issue. Sorry for the long question.

Take care,

Rosalind

10 Replies
Veronica Budnikas

Agree with the above, we'd love to see your file, it sounds like a great challenge!

While it's hard to know what you want to do exactly without seeing the file, I'll add that I also customise drag and drops a lot, and it does get complicated as Jackie said, here are a couple of things I almost always do with complex drag and drops (which may or may not work for your situation:

- If I want to prevent the user from picking up a drag item and dragging it around AFTER they have dropped it, I add a Disabled state to each drag item, and a trigger to say "change state of drag item 1 when dropped on XX". With complex drag drops where maybe I have a counting variable or other variables doing other things, I find this keeps things in control (cause you never know what the user is going to do!)

- When I do the above, I also then add a RESET button. So, for example if the user has to make choices about (whatever) what food items to put on their plate, they drag them on, but if they change their minds, they can click RESET and start again. The RESET button will just jump to the same slide (set to Reset to initial state on revisit) and also reset any variables you may be using (trigger order matters! first the triggers to reset the variables and then the jump to slide trigger) 

Anyway, hope this helps, but we would really like to check out that source file!

 

Ben Sewell

I agree with the above, but just a thought:

Could you set a trigger/variable to change when mouse hovered over an object, and then makes changes that way?

  • For example, on mouse hover (object 1), change variable 1 to true. If variable 1 is true, do this..
  • When mouse NOT hovered over (object 1), change variable 1 to false. If variable 1 is false, do this.

Another thing I find useful is to not use the default states on an object (normal, disabled, etc), but to create your own.

Rosalind Robb

Hi Everyone,

Thank you so much for your replies! I ended up finding a work around to get the interaction to do what I want it to do. Please find my file attached. I find once I published it, that it works better in HTML 5 than in Flash. There are still a few little bugs happening for me, but for the most part, it is doing what I want it to do.

The issue that I am working with right now is the fact that I cannot use the storyline player from inside Blackboard Learn. And when I publish without the player, the "drag and drop" is so slow on the iPad it is unusable. This issue, unfortunately will most likely determine whether or not we purchase this product at work. I have 3 days left on my trial and am trying to come up with a workable solution to running the interaction on a mobile device such as an iPad. This is sooo disappointing as I was so pleased with how the published HTML 5 version was working on my desktop computer. If anyone has any hints on how to get the drag and drop to run faster on the iPad, that would be wonderful!

 

Thank you,

Rosalind

Leslie McKerchie

Hey Rosalind - Thanks for sharing your file and allowing us to take a look.

I published your course and was able to even view it well on my iPhone. Take a look at this link.

A couple of questions:

  • Publishing was set to Flash only and the Articulate Mobile Player - I did change this to Flash/HTML5 as mobile devices utilize HTML5
  • I also noticed that you are publishing for the web, which is how I published as well - Blackboard Learn is not an LMS I presume then, just a place to host content?

Let me know if my link works better for you and perhaps we are headed in a better direction :)

Rosalind Robb

Hi Leslie,

Yes, I had been testing all the different ways to publish my activity and the last publish I had done was a Flash only when I uploaded the file.

Blackboard Learn is an LMS and the latest publish I tried today, I used the LMS with the Tin Can API and HTML5 only. That seems to work as long as I make sure not to check off the articulate player option. But the drag and drop still runs really slow on the iPad I am testing it on. I am going to test it at home tonight on my newer iPad and see if it works any faster.

I actually do not want to use Flash at all, I would like to use HTML 5. So my current publish setting that I am using now (HTML 5, LMS, Tin Can API) seems to work on both my desk top and on the iPad, but I am still having the very slow drag and drop issue on the iPad.

Was the drag and drop really slow for you on your iphone, when published in Flash (without the player)? In HTML 5 (without the player)? I forgot that I still had it set at my last publishing settings when I uploaded the file. I would like it to publish in HTML5 because for some reason the Flash version is not working as well and doing unexpected things.

Thank you and take care,

Roz

Veronica Budnikas

Hi Rosalind,

Glad you worked it out!

I just tried Leslie's published Drag and Drop on my iphone and it worked perfectly. It took around 6 seconds to load, and then the interaction itself worked just fine: I could drag all the words smoothly around and into place.

I'm not a technical expert by any means, but I'm not sure the speed issue is a problem with the SL file or publish options. If you are able to upload and test it elsewhere just to see how it works it might help you decide. It would be a shame to miss out on a great tool if the issue was with something else!

Good luck!

Phil Mayor

Using the freeform drag and drop is always the best way forward it offers more options. to avoid breaking the snap back of objects (when you add triggers) it is often better to monitor states in triggers and then activate your actions that way.

I also find it is better to change variables on submit based on states rather than exactly when you drop them

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