Drag&Drop tips


Since Drag&Drop appeared, there are many questions on the forums about them. Although the wizard is an easy way to create quickly a simple interaction, once you explore its functionality more in depth, not everything is self-explanatory. In this post I will try to offer some tips, do not expect to get a complete tutorial.

Tip1: Labeling

It is not really necessary to label the objects used in a Drag&Drop for simple interactions, but if you will need to use object actions labeling drag sources and drop targets can make life so much easier. And my true fans do know that I'm a labeling freak.

This is a warning: label all objects before creating the Drag&Drop. If you change your mind and want to add or edit names after having created the Drag&Drop links, you'll break the links from/to objects that get a new or changed name. This is certainly not the case in other situations in Captivate: it is perfectly possible to change names of objects that are used in advanced/shared actions, the names will automatically be changed in the actions. This is not the case for Drag&Drop, so try to avoid the problem by labeling objects first of all.

Tip2: Success message

It is a bit strange, D&D has a default Failure caption that will appear when the drag answer is incorrect, but it has no default Success caption. You have to take care of it yourself, this way:

  • Create a message, it can be a text container (use a shape, much more choice that for captions), an image, an animation, an audio clip or even a combination of several objects (group them in that case).
  • Make the message invisible, either using the option in the Properties panel, or using an action On Enter of the slide.
  • Define the action Show Message (which can be a group or an object, like defined in the first step) for the Success action in the D&D panel.

Update: if you upgraded to Captivate 9, you can forget about this tip: it is no longer necessary to use the workaround because the Success caption (or shape) is now available in the Drag&Drop panel as an option.

Tip3: Object Actions

Besides the actions that are executed when the user has clicked the Submit button (which I used in Tip2), you have the possibility to trigger an action by each individual drag movement. Bit weird, but in Captivate 8 you'll find those actions not as expected under the Actions tab but under the Format Tab.

You can use this functionality for several goals, like to:

  • show an individual message (can be text, image, audio) for each drag movement
  • simulate having the moved drag sources in a specific sequence (like books on a shelf)
  • ...

What is not mentioned anywhere in the Help is the fact that if you specify a simple action (from the dropdown list), the playhead will be released as is the case for any simple action in a normal situation (remember my blog post with video on Youtube: 'Why choose standard over simple action?'). And that is certainly not what you want! By default a D&D interaction has a pausing point at 1.5secs (like normal question slides), but a simple object action will cause the playhead to continue, user will not be able to finish. 

My recommendation: never use a simple action as object action! Replace it by an advanced, or better, by a shared action. For examples as mentioned above you'll probably have similar actions for all the objects, which makes shared actions the way to go. Watch this movie, you'll see what happens when a simple action is used, and how this is corrected by replacing the simple actions by shared actions.


The object actions on the slide with the simple actions (slide 2):

And I replaced them on slide 4 by a one liner shared action:

On the last slide I used a shared action as well, that hides the group and shows one explanation.

24 responses
Bonjour Lieve ! Quel plaisir de vous lire ! Je vous remercie pour votre aide et vous présente mes hommages, Nicolas
Excellent tips! Clicking Reset hides all explanations except the last one -- Is there a way to hide ALL the explanations?
Jay, the reset button is a built in feature, you cannot change its actions which are simply to move the drag sources back to their original position. The explanations are custom text containers, made visible by the shared action. Only way to make also the last explanation to disappear is to add a custom Clear button, that hides the group with the explanation. I have not done it in the example, because once you drag another source to the target, its correct explanation will appear. Hope this clarifies the problem?
Hi, I know that this is not directly related to this post but I have a Captivate question and you seem to be an expert on that. I have tried to get into the adobe forum but I cannot login, so now I am trying to get help elswhere. I have created an e-learning course with a menu at the top (with action to goto specific slides) made from text-buttons which is placed on each slide. My problem is that I would like the slide to progress automatically to the next slide but having the menu, means that each slide pause/stops at the end. I kow many are using the buttons to ensure that the slide does not progress automatically, but this is excately what causes my problem. Is there a way to make the buttons not stop the slide or another way to make a menu and still allow the slide to automatically progress? I use Captivate 8
This is indeed not related to the post at all. You need an Adobe ID for the forums, I'm always around there. For normal and for shape buttons you never have to pause, you can pause. Look in the Timing panel.
Sorry to have disturbed you. I have an Adobe ID, but cannot login because of some error saying there are too many redirects. I was just trying to get help somewhere else, and came across your website, and recognized your name from the forum. Since i cannot post my question in the forum I tried this option. Sorry for the inconvenience.
I answered your question as well, please read my comment. You have to look in the Timing panel to uncheck Pause, possible for normal as well as for Shape buttons. There is also a GetSatisfaction forum, less frequented: http://captivate.adobe.com/captivate/topics where you don't need an Adobe ID.
Thanks Lieve.
Thank you for your help, I found the place to uncheck the pause action. That was what I needed to finish my course. And thank you for the link to the other forum.
Now that I'm more familiar with Captivate, finally I'm starting to understand the finer points you make in your posts and videos. At last! Thank you for this valuable information. :)
Hi - I know this is a long shot that you'll see this message, but I'm trying anyway. I have Captivate 8 and in movie above, I'm trying to figure out how to have a shape move back to its original position if not dropped on the correct target. For example I dragged the Variable shape onto the Parameter/Candidate Parameter and it immediately when back to the starting position. I'd greatly appreciate your help. Thank you - Jeanne
You have to set this up in the Object Actions dialog box. The default setting for each target is 'Accept All'. You have to change that and indicate which drag objects can be accepted (are correct). The wrong drag sources will be returned automatically. This has to be done for all targets.
Hello! Thanks for this! Is there any way to create a drag-and-drop where an object in a group can be dragged, but brings along all of the other objects in the group with it? I'm trying to simulate dragging a window by a title bar, so I only want the title bar to be draggable, but for it to bring the window item along with it. Thanks!
That type of questions should be easier to answer on the forums. You'll have to use the object actions to apply motion effects to move the additional items, but it will be after the original drag source is dragged. Padding will probably not lead to the wanted result.
I created a drag and drop and a variable intended to count the number of unsuccessful attempts. On the On Failure event, I increment the variable by 1 but the variable remains at the default I specified (0). What am I forgetting?
Reason is that the 'Failure' event is in reality a 'Last Attempt' event like on other quiz slides. It only happens after the last attempt. You need to use the object actions to reach your goal.
It appears that object actions apply to each target. So, if I drag incorrectly to 3 targets, it increments my variable by 3. I only want to increment it by 1 after all answers are submitted.
It is possible, but you have to think about the logic. Use two variables, v_one is a toggle, that will be set to 1 when v_attempt has been incremented. Increment only when v_one is equal to 0.
Hi there I am trying to create a drag and drop with behaviours on the target. I have a red ball (source) to drag & drop into a white box (target). However I only want the white box (target) to display when the red ball (source) is dragged over it but before it is dropped onto it. Kind of like if you hover your mouse over a certain area, and a hidden object appears. I want to drag the red ball over a certain area and have the white box appear (to then indicate I am in the right place) before I drop the red ball.
You missed some recent posts. Here is one where I explain all the InBuilt states for D&D objects, which were a new feature in CP9: http://blog.lilybiri.com/drag-and-drop-in-2016-... Because the movie in that blog post was still a SWF, I created a new version, which is only published on the portal: https://elearning.adobe.com/2017/08/built-in-st...
4 visitors upvoted this post.