D&D Feedback messages

Intro

Yesterday an interesting question appeared on the forum concerning Drag&Drop

The second question is answered in that thread, was about setting up the Accept for the drop target as I have already explained in previous blog posts. The first question however is at the base of this short article. I quote:

"Is it possible to show separate messages for cases such that the user not selecting the answer (Choose an answer msg) and selecting the wrong answer (Incorrect answer msg).  It currently shows 'Incorrect Answer' msg for both cases."

I asked for some details about the setup: 

  • Several drag sources, only one was correct
  • One drop target, based on my answer to the other question, it accepted all drag sources but only one by one. When dragging another source it would replace the first one.
  • Infinite Attempts

Drag&Drop confusions

Drag&Drop slide have some limitations such as: all drag sources and drop targets have to be on the slide from the first frame.  You can define it as a score slide or as a KC slide (see Drag&Drop Tips).  It has a lot of the behavior of a quiz slide, but it is not a full-blown quiz slide or KC side. Here are some points in its UI that I find really confusing and would love to see changed (logged feature requests about that since version 6):

  1. D&D slides are automatically pausing at 1.5secs but that is NOT visible on the Timeline, only in the Timing properties, whereas for quiz slides the pausing point is visible on the Timeline but NOT in the Timing Properties. This is confusing.
  2. D&D slides have an On Enter event and an On Exit event, whereas quiz slides only have an On Enter event. That is OK.
  3. Submit button both for D&D slides and for Quiz slides have one or two events, depending on the number of allowed attempts. For quiz slides, the actions triggered by those events will happen after the first step of the Submit process (where feedback messages appear), for D&D slides there is only one step in Submit process. That is OK, you just have to realize that.
  4. I talked about one or two events:
    1. If the number of attempts is limited you have two events: you allwasy have the Success event. That event and its linked action occur when the answer is validated and correct. That is fine, works the same for quiz and D&D slides. If you want to give the learner the time to read a Success message, which can appear automatically you have to leave some time to the learner by choosing the correct action On Success. Example: if you set the Success action to 'Go to Next Slide', learner will not be able to see a Success message. Change to 'Continue', and eventually increase the duration of the slide. Works fine, just that slight difference.
    2. If the number of attempts is limited, the second event is the Last Attempt event. That is indeed the indication in the Actions part of  the Quiz Properties.  The Failure message will always pop up with every Failure attempt, but the event that triggers an action only occurs when all attempts are exhausted. However in the Actions tab of a D&D slide it is wrongly labeled as Failure event. Many users  believe that the specified Failure action will occur for each Failure attempt which is NOT the case. This is confusing 
    3. If the number of attempts is unlimited you have only one event, the Success event. It is logical because you are supposed to try until you get the correct answer. For quiz/KC slides this is very clear because the Last Attempt event is dimmed when you choose for unlimited attempts. However for D&D slides the (alreadly wrongly labeled) Failure event is not dimmed, although it will never happend. This is very confusing IMO.

Sorry for this long explanation, needed to understand the workflow I explored to answer the question mentioned in the intro. I hope some of you, readers, will support my feature requests to 'repair' the UI and avoid confusion.

Workflow for  messages

User wanted to see a different message popping up:

  1. When the submit button is clicked but no drag action has been done
  2. When the submit button is clicked and the drag action was wrong

Both situations are considered Failures, but Failure doesn't generate an event until the last attempt. Since it is set to Unlimited Attempts, there will never be a Failure event. No way to replace the messages by custom text containers, if you cannot trigger advanced/shared  action on Failure.

The popup messages (Success, Failure) cannot be controlled, they don't have an ID.  You can create states for such a message, but since you cannot address the message, you cannot change the state by an action.

A possible solution is to replace the text in the Failure message by a variable, in this case I labeled it v_failure. It is possible to change the value of a variable. This is the screenshot in editing phaes of an example slide:

As default value on defining the variable I used the text to show when the learner has clicked the Submit button without doing any drag action:

The value of the variable has to change when at least one drag action has happened, which was not the correct action. Besides the events occurring after clicking the Submit button, D&D slides have also Object Actions. I will use those actions to assign another value to the variable v_failure. Open the dialog box in the Format tab for the selected drop target. In this very simple example, I used an Assign command as you see in this screenshot. I only needed it for the two wrong drag sources. For the correct source, no need to change the Failure message, since the Success message will appear. Since I used a simple action, needed to uncheck the box 'Continue Playing the Project'.

If you need to change a lot of those actions, and it is OK to have always the same Failure message, please create an advanced (oneline) action, will save you time when applying in the Object Actions. If you want a different feedback message for each wrong source, use either the Assign command (as above) or use a shared action.

 

 

 

 

 

Drag&Drop Actions

Intro

In the webinar which I presented on 2018/3/15 about Shared Actions, I showed several workflows with shared actions. If you want to have a look at the presentation used during the webinar, look at my previous blog post. You'll find a link to the published interactive movie

One of those examples, was a Drag&Drop slide where both advanced and shared actions were used as Object Actions. It can help you with the tough task to choose between the two types of actions. A similar example appears in the presentation, where only a shared actions was used. It had 7 drag sources and two drop targets:

Example movie

You can watch this movie to understand the goal of the D&D slide. It has 6 drag sources and only one drop target. You will be asked to drag only the correct new features in CP2017 to the drop target. Only when the answer is correct will you see the Next button. There is a Reset button for the D&D, which is not the default reset (because of the states used on the drop target) but uses an approach which I have explained already multiple times.


Setup D&D slide

Auto Submit Correct Answers is activated, and the Submit button has been dragged to the scratch area. The drop target accepts all drag sources, which will disappear behind the target but the count is limited to 3 (because there are 3 correct answers). Due to the Auto Submit which only will happen for the correct answer, the Next button will only appear when the answer is completely correct (Action 'On Success'). 

The drop target is a multistate object. I didn't add InBuilt states in this case but three custom states, using a gradient edited for each state with 'Edit Gradient'.

On the slide, not overlapping with any object, there is a multistate shape, labeled 'Comments',  acting as feedback container. The normal state is blank and you see the other states in this screenshot:

Advanced Action DD_CorrectAct

I imported the shared action used in the presentation to the project Library and used is as a template for this Advanced action DD_CorrectAct. I added the Play Audio command. First I tried to add the audio to the state 'Correct' of the multistate shape 'Comments', but that proved not to work in this case, probably due to the Drag&Drop limitations. After the duration of the audio clip (4secs) the shape reverts back to the Normal state, which is invisible to the user (Alpha and Stroke set to 0).

Sorry for the generic label on he drop target. You probably know from my previous blog posts that renaming an object used in a D&D interaction, will kill the set up. 

Since this action is used with exactly the same feedback text and same audio clip for 3 drag actions it is much better to use an advanced action in the situation. 

Shared Action DD_IncorrectAct

The previously described Advanced action DD_CorrectAct is used as source to create a shared action. Since there is no state change needed for the drop target, the fifth command can be deleted. Five parameters are needed (due to the fact that audio couldn't be embedded in states). Four of them are compulsory parameters, one candidate was turned into a parameter: the literal for the delay time. That delaty time has to be at least as long as the audio clip to be played.

You just need to apply the advanced action and the shared action to the proper object actions: 

Want more?

Goal of this simple example was to show when to use a shared action instead of an advanced action? It could have been done with 3 duplicate advanced actions, which is what I see most clients doing. Start to appreciate the advantages of shared actions over duplicate advanced actions:

  • Ease of transfer to other projects
  • Management in the Library
  • Possibiity to use as template

Give it a try. If you want to learn more, give me some feedback, please.






1-2-3 Eye Buttons Mystery

Title is not an nostalgic reference to the best spreadsheet application ever (Lotus 1-2-3) but is related to... Captivate.

The THREE 'eye buttons' in Captivate are a source of confusion because they have exactly the same look (contrary to my image above) but show very different functionality. 
Questions due to that confusion appear not as frequently as the timeline misunderstanding questions, but nevertheless think that a clear explanation could help to dissipate confusion:

1. Eye button on the Timeline

This button appears in the timeline panel in the first column, on top, next to the lock button. If you click the top button all objects on the stage are hidden. To hide individual objects, click a radiobutton left of the object timeiine. A red cross will appear (see screenshot below). A full explanation of this and other timeline features and can be found in this article. Hiding an object on the stage has no effect whatsoever on the presence of that object when publishing (or previewing) the course: the object will be visible. What is the goal of this eye button? As you know (if you did read the article about the timeline), contrary to normal video timelines (included the Video Demo Timeline), a cptx slide will show all objects on the stage, whether they are scheduled to appear from the start or later on. That makes aligning a lot easier, but can also lead to a very crowded stage where objects are covering up other objects (except in the case of Fluid Boxes). To facilitate editing, it can be useful to hide some objects using this first Eye button.

This screenshot, taken from the game explained in 'Using the While loop' shows several hidden (on stage) objects and even a group. Since the topmost group still has one visible object (click box), its bounding box is visible on the stage. For the other group even the bounding box has disappeared.

There is one exception: you can also click the radio button left of the slide timeline. In that case the slide will be hidden (with all its content) and it will not appear when previewing/publishing. It is an alternative work flow for using the right click menu on slide(s) in the Filmstrip, option 'Hide Slide'. With both work flows you'll see a dimmed slide in the Filmstrip and an eye icon (not a button) as indicator.


Eye button in the Properties panel: Visibility in Output  

If you want an object to be initially invisible in the published course, you need to click this button in the Properties panel (inspector) of that object, top left. It is almost the opposite button of the first because the object will not disappear on the stage at all. Why would you hide an object in a published course? Maybe because you'll want to make it visible later on.  Example: you want to allow navigation to the Next slide only after certain actions have been performed by the learner (like clicking hotspots, or entering text in fields). Showing an object will be done with the command 'Show'. Making an object invisible by using this second Eye button can also be done on runtime by the action 'Hide' and that is often a better approach.  Since you can show a hidden object, it means that the object is included in the published version which is not the case with a hidden slide. A hidden slide is not included in the published course.


Eye button in the Drag&Drop panel

When this button is set to 'active', and you did set up the Drag&Drop interactivity by defining the drag sources, the drop targets and the links for correct answers those three components are made visible: green rectangles for the drag sources, blue rectangles for the drop targets and blue arrows for the links. When you deactivate this eye icon, those indicators will disappear. Since it happens that Captivate deactivates that button without your consent, it is good to know how to make those indicators visible: click on the barred eye icon: 

Pausing Captivate's Timeline

Intro

This is the fourth post in a sequence of 5. The first post introduced features of all timelines, the second is focused on the specific aspects of the Video Demo Timeline, the third on the aspects of the normal/responsive projects (cptx) both for master slides and normal slides. To understand this article - perhaps the most important - I recommend to  read at least the first and the third article as a preparation. 

This topic is more suited for a live event: a real or a virtual training session. I expect a lot of questions, and those are easier to answer in a live event. I have presented several webinars for Adobe in the past (most about advanced and shared actions), but that practice seems to be discontinued since a while. If you want to participate in a meeting (Connect room), I'm prepared to organize it. Send me a note: either by mail (info@lilybiri.com), in the comments on this post, or use Twitter (my handle is @Lilybiri). In case of sufficient requests, I'll propose a date/hour (probably am PT, for users in USA) and will need an e-mail address for the invitations. As a bonus, will offer you some files.

Pause and Pausing points

Pausing the timeline means stopping the Playhead. However that can be done in in two ways, and they do not affect the items in the same way. Let me first explain what I mean by 'Pause' as opposed to 'Pausing Point'. You'll see that I compare them with two traffic signs: Pause with the red light, Pausing point with the Stop sign. But also in traffic, some 'items' do not respect those signs, legally or illegally. 

Pause 

This strict way of pausing can be achieved by one of these methods:

  1. With the pause button on one of the default playbars.

  2. By choosing the command 'Pause' to be triggered On Enter for a slide (doing it On Exit is not a good idea, because it will happen after the last frame, see previous post about events).  It can also be a (last) command in an advanced/shared action.

  3. By using the Success event an interactive object (like a shape button) with the command 'Pause' either as a simple command or within an advanced/shared actions. Usually it will be the last command. 

  4.  Alternative for 'Pause' command is to assign 1 to the system variable cpCmndPause (its default value is 0). This system variable controls the pause.

If you use a playbar, you'll see that the progress bar is stuck when Pause is encountered. To understand even better, I recommend to insert the system variable cpInfoCurrentFrame in a text container, displayed for the whole project (on top). 

UnPause?

You can use the Play button on the playbar, or need the command Continue, which is available as simple action and in the dropdown list in advanced actions.

Pausing point

Pausing points exist on some special slides, or you can add them by inserting an interactive object for which Pause the slide is activated in the Timing Properties panel. In many cases the pausing point will be visible on the Timeline (see previous articles), but not always. Contrary to the absolute pause, here the timeline is 'waiting' for an action by the user. For that reason the STOP sign is a better metaphor than the red light. Here is an overview of the pausing points, which will be visible on the Timeline:
  1. Quiz or question slides: the pausing point is visible on the slide timeline, but not in the Timing Properties panel. Only way to move is by dragging. Default timing is at 1,5secs, and pause cannot be unchecked. Pausing point is linked with the two-step process triggered by the Submit button. However when selecting the Submit button, you'll not see the pause in the Timing Properties panel (as is the case for the D&D Submit button). Waiting is here for the user to click the Submit button, then to press Y or click on the slide
  2. Score slide: same situation as for the quiz slides: visible in the slide timeline, not in the Timing Properties. Default timing is at 1,5secs. Pausing point is linked with the Continue button, but will not show in the Timing Properties panel of that button. Waiting here is for the user to click the Continue button.

  3. Drag&Drop slide: is pausing at 1,5secs but the point is not visible on the timeline. You will not see it in the Timing Properties for the slide, but in the Actions tab of the D&D panel. It is linked with the Submit button, when selecting that button the Timing properties panel will show the timing of the pausing point. Waiting for the user to click the Submit button, or in case of Auto Submit waiting for a correct answer.

  4. Interactive objects (click box, button, shape button, Text Entry Box) can have a pausing point, to be defined in the Timing Properties panel. That pausing point will be visible in the Timeline, and the part before the point is indicated as 'Active', part after the pausing point as 'Inactive'. Since a click box is invisible to the user, it has not inactive part, its pausing point will always be at the end of its timeline. Waiting is for the user to click either on or outside of the interactive object (click box, shape or normal button) or to confirm the Entry in a TEB. You can edit the pausing point by dragging in the Timeline or in a precise way by editing the Timing Properties panel. It is also possible to uncheck the Pause (see screenshot 3 in the Gallery).

  5. Shape button on a master slide can have a pausing point. Since objects on a master slide have no duration, no Timing Properties panel, you have to indicate that you want it to pause, in the Actions tab of the Properties panel (see screenshot 4 in the Gallery). You can uncheck the pause there as well. The pausing point will be at the end of each slide, based on that master slide. It will not be visible in the timeline
  6. Interactive widgets or learning interactions have a pausing point at 1 sec. It will not show up in the Timeline, you can find it in the Timing Properties.  Pause can be unchecked, but you'll not want to do that for this type of interactions.That is the place to edit or uncheck the Pause (see screenshot 5 in the Gallery). Static widgets/interactions do not have a pausing point. More info about difference  between interactive and static in: Widgets and Interactions

Bonus: You can download a (watermarked) pdf with this overview from PausingPoints.

UnPause?

It depends on the kind of pausing point:

  1. For Question slides: the playhead is released after the second step of the Submit process and the actions defined in Question properties will be done.

  2. For Score slide: similar, but after clicking the Continue button.

  3. For Drag&Drop: exactly the same as for the Question slides, after clicking the Submit button.

  4. For interactive objects on master or normal slides: if an advanced action is executed (Success/failure) the playhead is not released automatically. If you want this to happen you have to include a Continue or a navigation command like Jump to as last command in the action. If you use a simple action, the playhead will be released by default, but in CP9 it is possible to uncheck that default setting 'Continue playing the Project' (not done in this screenshot).
     

What is Paused?

Not everything is paused by the absolute Pause command, nor the Pausing points. Watch the interactive movie to understand better. Some items are never paused, some are paused by both Pausing points and the Pause command, some are only paused by the Pause command, not by the pausing points although there may be a workaround. 

The position of the playhead when pausing is important: objects for which the object timeline starts later than the pause will not appear until the playhead is released.

Same is the case for Effects which have a duration, a timeline: if the pause occurs while the effect is not finished, it will stall in the last position and continue only when the playhead is released.

Animations however are never paused, not even when you use the Pause command triggered by the On Enter event of a slide. They will always play.

Video clips inserted as Event video are totally independent: if they are playing when pausing, they'll continue to play. If a pause is occurring and the video is not yet started, the user will be able to use the Play button of the video control panel to watch the video. The only alternative way to pause event video is by using JavaScript (see Working with event videos). Video clips inserted as Multisynchronized video however will be paused by the Pause command and by a pausing point.

The situation is a lot more complicated for audio:

  • Background audio is totally insensitive to Pauses or Pausing points: it will continue to play.

  • Slide Audio: will automatically be paused by the Pause command, but not by a pausing point. It is possible to pause slide audio at a pausing point, to resume when the playhead is released if you check 'Stop Slide Audio' on the Options tab in the Properties panel of the interactive object.
  • For the default pausing points on quiz slides, score slide, D&D slides you cannot pause the slide audio however. This seems confusing, and can lead to a problem. Slide audio clips automatically will increase the duration of the slide. You learned that the default pausing point of this type of slides is always set to 1,5seconds. If the playhead is released with the command 'Continue', it will have to visit all the remaining frames on the slide, those frames in the 'big' inactive part of the slide. To avoid that, I recommend that you change the default pausing time and make it just a little bit smaller than the slide duration. This is not necessary if the actions when releasing the playhead from its pausing point are a navigation to another slide, because the inactive part of the slide will just be skipped.

  • Object audio: will be paused by the strict command Pause, but not by a pausing point! There is no workaround for this behavior for a Pausing point.

  • Audio started with 'Play Audio' cannot be stopped not by Pause nor by a pausing point, the only way to stop it is by launching the command 'Stop Triggered Audio'. 

Why pausing?

This blog post has become very long, for which I apologize. For that reason I will write out some use cases, to illustrate the just described theory in later posts. You're welcome to post some ideas as well. Here are some appetizers:

  • Instead of creating very long slides to fit the narrations, use the Play Audio command and have a pausing point on the slide. That can be a Next button, which offers total control to the user.

  • Question slides with narration as slide audio: you need to move the pausing point.

  • Create custom navigation: use shape buttons on the main master slide, only one of them needs a pausing point to give each user all the time needed to watch the slides.

  • Create a slide with light boxes.

  • Have multiple TEB's on one slide with a unique Submit button.

  • Create a dashboard with buttons to display multiple vodcasts, images, podcasts.

Custom Failure Messages/Attempts - Drag&Drop

Intro

This article is written as an answer to a question on the forums: Drag&Drop with Advanced Action

For quiz slides you have the option to show more than one Failure message, linked to the attempts. That functionality is not available for Drag&Drop slides. As you can read in the thread, another user posted a solution using the Object actions which are executed after each drag action.  The solution I describe here is more similar to what happens on other quiz slides: the messages will appear after clicking the Submit button. This work flow is only valid for Knowledge Check slides, which was the goal of the user on the forum. As you can read in one of my former blog posts, a D&D slide which is not scored, is reset automatically when leaving the slide. This functionality is used here. You'll also see that I used the InBuilt states for the drop target, which i described in this post.

Example 

Watch this interactive movie to see the result. It is Flash-based, do not watch from a mobile device, please.

Setup D&D Slide

The Drag&Drop slide's Timeline looks like this screenshot:

From Bottom to Top you find these object timelines:

  • DragOne, DragTwo and DragThree which are the 3 Drag sources. Those objects have only one extra InBuilt state: the transparent DragOver State. D&D is set up so that the drag sources disappear behind the drop target.

  • DropContainer which is the unique Drop Target. It has 3 states as you see in this State panel
  • Text Tx_Question which has the Question

  •  Gr_Feedback with several objects; the whole group is hidden in Output
    • I_Fail and I_Success are the two sticky images
    • Shape button SB_Continue with a pausing point at 2 secs, which is later than the (default) pause of the D&D (1,5secs)
    • FB_One, FB_Two and FB_Three are the failure feedback messages for the 3 possible failures. The first two have an inserted variable v_attempt.

You don't see a Success feedback on the timeline, because I kept the default Success message for the D&D slide (unchecked the Failure message)? That Success message has just be edited (freeform shape).

The D&D panel, tab Actions has been set up as visible in this screenshot. Although the user provides 3 attempts, you see that I set the attempts to 1 in this panel:

Variable, Events and Actions

I used only one variable: v_attempt, with a starting value of 3. If you want to have more attempts than 3, just change that starting value. You can see its value in the example movie, center of the bottom bar. That variable is also inserted in the first two Failure messages.

SubmitAct, triggered by the Failure event of the D&D (see panel above)

This conditional action has 4 decisions, can easily be edited to have more than 3 attempts

  1. Decision 'Always' is a mimicked standard action, decrements the value of v_attempt by 1
  2. Decision 'First' checks if v_attempt is equal to 2, which means the first attempt (because the original value has been decremented in the first decision). If that is the case 3 objects out of the feedback group are shown: the first feedback message (FB_One), the image I_Fail and the continue button SB_Continue
  3. Decision 'Second' checks if v_attempt is equal to 1, which means the second attempt. The actions are identical to 'First', with the exception of the feedback message (now FB_Two)
  4. Decision 'Third' checks if v_attempt is equal to 0, which means the third and last attempt. It has similar actions to the previous two decisions. 

Here is a screenshot of the complete action:

SuccessAct, triggered by the Success event of the D&D (see panel above)

This standard action will set the variable v_attempt to 0 (necessary to have the last action ContAct executed correctly), shows the image I_Success and the Continue button. The success message appears automatically, since it is de original embedded message.

ContAct, triggered by the Success event of the Continue button

Here is the 'trick'! After each attempt I want the D&D slide to reset automatically. This is only possible when you leave and re-enter the slide. To achieve this, I used a similar (but easier) approach as explained in the blog post ReplaySlide. I inserted a dummy slide before the D&D slide, with a very short duration (0,1secs). Have a look at the script triggered by the Continue button, which is a one-decision conditional action:

When there are attempts left (v_attempt > 0), these commands are executed:

  • Expression cpCmndGotoSlide = cpInfoCurrentSlide - 2
    The first system variable cpCmndGotoSlide has an index starting with 0, whereas cpInfoCurrentSlide starts with 1. That is the reason why 2 is subtracted. In human language this command means Go to Previous Slide.You can replace it by 'Go to Previous slide' as well, but I like to repeat explanations like this. Sorry!
    Alternative: Go to Previous Slide

  • Continue: is necessary so that the playhead is released. It will quickly speed over that dummy slide (0,1 sec) and you'll see the D&D slide almost immediately, freshly reset because it was re-entered and not scored.

When no attempts are left the user is navigated to the last 'End' slide.

Tips

If you want to allow the same scenario for this slide, when the user revisits the slide, you have to reset the variable v_attempt to its original value, which can be done with the ELSE part of the action ContAct. It will have 2 commands in that scenario:

  • Assign v_attempt with 3
  • Go to Next Slide

To change the number of attempts, for example from 3 to 4:

  • Change the default value of v_attempt to the new literal
  • Create an extra Feedback message FB_Four and include it in Gr_Feedback (select both new message and group, followed by CTRL-G)
  • in SubmitAct
    • Duplicate the last decision 'Three', and label it 'Four'
    • Edit 'Four', replace 'FB_Three' by 'FB_Four'
    • Edit 'Three': replace the literal '0' in the condition by '1'
    • Edit 'Two': replace the literal '1' in the condition by '2'
    • Edit 'One': replace the literal '2' in the condition by '3'

No other changes are necessary.


Drag&Drop in 2016 with Captivate 9

Intro

As promised in a previous article, I explored the enhancements to Drag&Drop in Captivate 9, more specifically added InBuilt States. In previous versions only buttons and shape buttons had those states. Captivate 9 added multistates to all objects and provided InBuilt states for all objects in a Drag&Drop slide: drag sources and drop targets. Custom states can be added as well. Both InBuilt states and custom states have some limitations similar to the Inbuilt states for buttons. Drag&Drop objects have also limitations for added custom states.

Example Movie

Watch this movie, I left the default play bar active to allow you free navigation. You'll find two Drag&Drop slides with different use cases on slides 4 and 5:
  1. The first use case has only two drag sources, one of them being correct, the other incorrect. There is one drop target, the cup. Watch the different InBuilt states both for the two drag sources which have identical states and for the drop target. All states are introduced on slides 2-3. All objects have also one custom state. Because of my manipulation of the states on Submit, the default Reset button will not return you to a fresh start if you have used the Submit button. You'll have to use the custom 'My Reset' button in that case. 

  2. In the second use case you'll see 7 drag sources and 2 target objects: the box and the trashcan. You are supposed to drag all sources to the appropriate target. You'll find the 'My Reset' button here as well.

Drag Sources: states

The Drag Sources have 5 InBuilt States (see slide 2 in movie). Common to all those states and to the custom states is that you cannot add any object in a state. All the options on the Big Button Bar (horizontal toolbar) are dimmed with the exception of the Record button (for audio): no Text objects, no Shapes, no Higlight boxes (under Objects), no Media can be added to any state. Here is a short description of each state, of its functionality and limitations. As a visual reminder have a look at the Gallery, which shows those states for the first use case
  1. Normal state (InBuilt): is the Default state. This state will appear before dragging, and will re-appear if a drag source is sent back to its original position as well (for an incorrect object). The size of this state is important, because several states are locked to the same size. You can rotate the Normal state (watch the rotate handle at the top), which will also lock some of the states to the same rotation.
  2. Dragover state (InBuilt): this state appears when the drag source is over a drop target and will remain so until the object is dropped on or moved away from the target. This state is not locked, it can be resized and rotated.
  3. DropAccept state (InBuilt): will appear after dropping a drag source on the drop target, it will replace the Dragover state and become permanent. It is totally locked (watch the lock symbol bottom right): will keep the same size as the Normal state, cannot be rotated. Be careful: if you allow all drag sources, both correct and incorrect, to be dropped on the target, the DropAccept state will also appear for correct and incorrect objects! If you only allow the correct drag sources to be dropped, this state will only appear for them.
  4. DropReject state (InBuilt):  will appear after dropping an incorrect drag source on the drop target if the target is not set to allow All objects to be dropped. It will replace the Dragover state. When the incorrect object is sent back to its original position, the DropReject state is replaced by the Normal state. Like the DropAccept state this state is totally locked: no resizing, no rotation possible
  5. DragStart state (InBuilt): this state appears when you start the dragging movement until you are over a drop target, where it will be replaced by the DragOver state. The state is not locked, it can be resized and rotated.
  6. Custom state: this state is also fully locked to the rotation and size of the Normal state. As written before, you cannot even add objects in this state (which is possible for buttons). That is a limitation, in many cases you'll want to revert to the old method of hide/show objects. For this example it seems as if I added the image of the wings, but I'm just cheating: for all states I used smart shapes. That way I was able to change the form of the shape (Replace shape), to change its fill and stroke. For the InBuilt states I used gradients or solid colors as Fill, for this custom state I used Image Fill. Since a shape can also be used as Text container, it was possible to change the labels of the states as well. If you are not yet member of the Smartshape fan-club, maybe... :)


Drop Targets: states

The Drop Targets have 6 InBuilt States (see slide 3 in movie). Three of those states have a name that is identical to an existing state for the drag sources: DragOver, DropAccept and DropReject. For Drop Targets you can add objects to all states, both InBuilt and custom states. Some states appear immediately, other states only appear after Submitting the exercise. Here is the overview, again with a visual reminder from the first use case in the example movie.

  1. Normal state (InBuilt): is the Default state. This state will be the main state before the Submit button is clicked. It can be replaced by another state but that will only be for a short duration. The size of this state is important, because several states are locked to the same size. You can rotate the Normal state, which will also lock some of the states to the same rotation.
  2. Dragover state (InBuilt): this state appears when a drag source is over the drop target and will remain so until the object is dropped on or moved away from the target. This state is not locked, it can be resized and rotated.
  3. DropAccept state (InBuilt): will appear after dropping a drag source on the drop target, it will replace the Dragover state. However this state will remain visible only for a short duration. Then the Normal state will re-appear. The reason is that a drop target can accept multiple drag sources, and has to be ready to 'accept' or 'reject' the next drag source.  It is totally locked: will keep the same size as the Normal state, cannot be rotated. But, as told, you can add objects, which was the case in the example movie (adding the wings).
  4. DropReject state (InBuilt):  will appear after dropping an incorrect drag source on the drop target if the target is not set to allow All objects to be dropped. It will replace the Dragover state. The state will appear for a short duration before reverting to the Normal state. State is  It is totally locked: will keep the same size as the Normal state, cannot be rotated. But, as told, you can add objects, which was the case in the example movie (adding the wings).
  5. DropCorrect state (InBuilt): this state will appear after Submit if the drag source(s) dropped on the target are all correct. It will replace the Normal state permanently. The state is fully locked (to the Normal state): no rotation nor resizing is allowed. You can add objects.
  6. DropIncorrect state (InBuilt): this state will appear after Submit if the drag source(s) dropped on the target are not all correct. It will replace the Normal state permanently. The state is fully locked (to the Normal state): no rotation nor resizing is allowed. You can add objects.
  7. Custom state: this state is also fully locked to the rotation and size of the Normal state which is limiting even though you can add objects.  

Reset - My Reset

The default Reset button has been added to both use cases (slide 4-5). This button can only be used to reset before submitting the result. I added an extra button 'My Reset', which is really the Replay2 button described in a previous blog post. If a D&D slide is not included in a quiz, has not score it will be reset when you re-enter the slide. This is what I'm doing, getting back to the last frame of the previous slide, then continue. That may result in some flickering, depending on the bandwidth, but the D&D will be totally reset. The mentioned blog post explains the need for a user variable v_enter to store the first frame number of each slide with an On Enter action. 

Setup Use Case 1

Have a look at the Timeline of this slide:
There is only one correct answer: DragSource1 to Target1. There is an object action for this correct answer, to change the state of the other drag source to the Custom state, as you can see here:
Setup is almost the default set up: Snap behavior will change the size and the opacity of the dropped object to 70% (size) and 80% (Opacity), and snaps to the center (Anchor). There is one attempt allowed, and the actions on Success and Failure are visible here:

The advanced action DDSuccess4 has three statements:

Due to hiding the drag sources with this Success event, the On Enter action of the slide has to 'reset' the situation by showing the group Gr_Draggers again. This was combined with the assignment of the user variable v_enter for this slide in the action:


Setup Use Case 2

Have a look at the Timeline of this slide:
Effects are time-based, starting after the pausing point of the Drag&Drop (1.5secs which is default). Back and Next buttons have no pausing point in this slide. When the playhead is released by the Success event, it has to continue seamlessly to the end slide 6.

For the correct answer all Christmas balls have to be dropped either in the box (2, 0, 1 and 6) or in the trashcan (3, 4 and 5). There are no object actions in this use case. 

For setup of both drop targets size and opacity of the drag sources will change to 0% to have them disappear in the target. You can see that the actions on Success and Failure are very simple:
Even the on Enter action of this slide can be a real 'simple' action to have the correct frame number assigned to the user variable v_enter: