1 person found this helpful
Use a shared action, disable the other buttons for as long as the audio has to play, by using the Delay command. After that delay you enable them again. Typical use case for shared actions....
Hi, so I did the disable, delay enable for all buttons. Now the button I did it for isn't opening at all. The always do tab changes the state. The show next tab shows the continue button if all buttons on slide were shown. Please take a look at how I did disable, delay, enable and let me know if I did it wrong!
Which button triggers this action - button_49? Is this button visible at all on the stage or just not doing anything when clicked? If the latter, make sure that the correct advanced action is selected in the Script field of Properties -> Actions
Also, I normally disable the button that was clicked as well so that users can't repeatedly click and launch the same action when they're not supposed to. The other thing I normally do is have a "disabled" (grayed out) state for disabled buttons. This means more lines in the action to change all the states for all the disabled/enabled buttons - up to you.
To answer your question about the action setup - yes, it looks OK to me.
From what I see you are pretty new to advanced actions? A Button is not a variable, why are you checking the value of a button? Resetting the Inbuilt state of a Button to Normal is rarely necessary since it is the default state of that button when it is not pressed, unless you have ever changed it to a custom (not an Inbuilt) state different from Normal/
You cannot use the same name for an object and for a variable at all, because that will for sure cause a lot of problems, in case you have defined a varaible with name 'Nutton_1'.
Please explain clearly what you want to do with that button? I see only that you want to show something based on an AND combined condition, but look at my comment about variables and buttons.
BTW: if you want to show a screenshot of a conditional action, please use the Preview view. You will get it pressing the first button int the to right control bar, looks like an arrow.
Soon I will publish an invitation for an advanced Captivate course on my website, which will have in-depth exploration of variables, advanced actions and shared actions.
Yes, that looks good, too. Assuming that the script you want and showed before is indeed "49". My next step would be to temporarily remove the line that changes the state of your text caption to normal - perhaps the state is changing back so fast that you don't see the change even though there's supposed to be a delay.
And, there's the SWF/HTML question. Are you previewing Next 5 slides or In Browser or ...? Are you planning to publish to SWF or HTML? I find that sometimes things work as HTML that don't work as SWF and vice versa. And I can't always predict which things will refuse to work in which system. I only publish as HTML5 since Flash is on the way out and I can't guarantee that someone won't try to use an iPad to view my courses. So, I always preview as HTML5 also.
Lilybiri is correct that it's best NOT to use the same name for a variable and an object. It's easy to prepend v_ to a variable name (v_button1, for example). That can avoid some confusion in the back end of Captivate.
Will you take care of this OP, then I'll step away because it will be confusing.
BTW it is nott 'best' to avoid duplicate names, iin this case it is compuslary! There are a few cases where you can use a name twice, but there are very§ rare.
OK - I'll take care of this question. Cheers!
Since I am labeled the Queen of Advanced/Shared actions: the OP needs a shared action in this case, as I stated in the beginning and I would prefer to group the buttons and hide them instead of disabling because the shared action will have less parameters and will be handledi in a much easier way.
True, but I don't know if he needs keep them visible - from what was mentioned in an earlier post, I think they do need to stay on screen. Too bad enable/disable doesn't work on groups. I also find that, with lots of buttons and disabling/enabling, it's easier to duplicate an AA and only change the one or two things that are different than to set all of the parameters of a shared action for each button. But we are having a semi-private conversation here and perhaps confusing our OP.
In that case you use a click box or a shape button over an image. The problem is that you cannot disable a group. A shared action would be wonderful in this case with a limited number of parameters but you need to group.
It may be easier to duplicate advanced acytions like most 'experts' do but they ignore that this can lead to inflating the file size (compared with instances of one shared action) and is much more difficult to manage. I always look for the easiest way to manage any action. More than 3/4 of all actions I create for clients are shared actions because of a lot of advantages, which you may ignore.
Sorry, but you stepped in this thread which I was already following up since yesterday. It is a great idea to have different solutions in a thread, but in this case I felt indeed that it would be confusing because the solution I was trying to explain was not yet fully understood. I even think a multistate object for all the audio to play would be the best approach.
OK, will not bother you anymore.
Hi, thank you so much guys. Speaking about parameters in shared actions, for some reason it isn't allowing me to uncheck the boxes for all the disable/enable button parameters. It is making me use all those parameters which makes it about 10 enable and 10 disable parameters along with the ones I actually want to use. Is there a way to disable the program from "auto-enabling" parameters?
This would save a lot of time being that I have a bunch of slides I need to program the same way
Thanks again guys!
Blogged quite a lot about Shared Actions.
Suspected you needed this on a lot of slides, and having too many advanced actions (edited duplicates) could really mess up your file as I experienced several times in consultancy jobs.
But I promised to step away, since dan56 took over.
If you are using shared actions (a good thing to do in many cases), you should read everything Lilybiri has written on them. And, as far as I know, any parameter that refers to an object cannot be deselected. Shared actions are best when the number of items acted on is limited for the reason you just discovered. Grouping can help a lot with showing/hiding but, unfortunately, enabling/disabling and state changes cannot be applied to a group.
Perhaps I've been lucky, but I haven't had problems with file corruption or Captivate becoming confused when using many duplicated and then edited advanced actions. You have to be careful when naming them to keep yourself from being confused, however.
So, with many parameters to deal with in a shared action, you might want to try to cut them down by doing things a different way:
Instead of disabling/enabling buttons and changing states to match, you can have two sets of shapes and a set of clickboxes or transparent buttons that overlay them. For example:
A group of full-colour shapes that would represent enabled buttons
A group of low-contrast shapes that would represent disabled buttons
A group of clickboxes/transparent buttons to perform the actions
On click of a button, the shared action would
1. Hide the clickbox/button group
2. Hide the full-colour shape group
3. Show the low-contrast shape group (if all the buttons must remain visible)
4. Do all the other things necessary
I find it's a good idea to have a "selected" state for the button that was actually clicked so that the user can easily see which one has been selected, especially if all the other buttons must remain visible. You could use the full-colour shape for that button or create a new group of shapes for all the buttons. If you choose to do this, simply insert:
3a. Hide the selected shape group
3b. Show the selected shape for just the button that was clicked
After your delay for playing the audio, remember to hide the low-contrast group, hide the selected shape, show the full-colour group, show the clickbox/transparent button group.
Remember to place the clickboxes/transparent buttons on top of all the "button" shapes in the timeline (arrange on top) so that the cursor will change to a hand pointer when hovering over them.
Disadvantages to doing things this way, however - you lose the rollover and down state changes that are built in to normal buttons if you use clickboxes. You can get around that by using the transparent buttons by creating an outline or some other visual cue in the rollover state. Also be aware that, if you set up a shared action and then decide to edit it, you'll have to save it with a new name, then assign all the buttons that use it to the new shared action and reset all the parameters for all of the buttons that use that action.
One more tip - name all the objects that you will be using in either an advanced action or a shared action. It's much easier to keep track of logical names than the auto-assigned numbers.
So when I do either of these versions, they don't work. The way I was doing before by changing state, disabling all buttons, delay, enable all buttons, what happens is if I click one of the other buttons, the whole slide freezes not allowing me to press anything and after a few seconds it just goes onto the next slide.
This method, creating groups what I did is: HIDE full-color Image Group, SHOW low-contrast Image Group, HIDE each transparent button, Delay, show Full-color image group, HIDE low-contrast group, SHOW Each click button This just shows me a slide and advances after a few seconds.I wish there's a way to enter a video.
PS. In photos attached I know the variable names on the "show next" tab is different from the actual buttons names but I took that into account by using old buttons in "always do" tab. In the end I will fix that but for my simplicity later. I just want to make sure this works first. The first 3 photos are the sample actions for one of the buttons, I did this for all changing the state, delay time and assigning different button variable for each. The other photos are the sample transparent button settings on the slides; group1 is full image, group2 is faded image. I duplicated my AA and changed a few things for each button. I found that easier than a shared action. Group2 is initially hidden.
Again, all buttons are same settings including timing. However, the only thing different is the advanced action it is executing which is actually corresponding to the button number.
Usually unexpected progression to the next slide is caused by a "Continue" lurking inside an advanced action. That can appear if you've deleted an object that used to be used by the action. I've had it happen when ungrouping objects as well. Captivate does a pretty good job of keeping track of name changes, but if things disappear a "Continue" is inserted and the playhead is released, allowing transition to whatever comes next. The "freezing" you describe sounds like the "Delay for x seconds" command doing its job, and/or the remaining time in the slide after the button pause and before the end of the slide.
The most efficient way of looking at an advanced action is to click the little > (called "preview action", looks like a play button) in the upper right corner of the action window, next to the + button. That displays the action in one list, complete with all decision tabs.
I recommend trying your procedure on a temporary slide with only a few objects on it. This will allow you to experiment without having to set/reset lots of items. When you get it to work the way you want, simply implement the same procedure on all the objects of your real slide.
Please, show the timeline. All buttons need to have their pausing point at the same moment. At least one button has to be enabled at each moment, to keep the playhead paused. I see for this button that it appears after a certain time and pauses after another time. What about all buttons?
To show a full advanced action (already mentioned that), use the Preview button: first button in the top right control panel of the Advanced actions dialog box. It looks like an arrow. That way you can verify if there is a Continue command somewhere.
Not at all, you want the playhead to remain at the pausing point of the buttons (one of the button timelines - 185 -is not set till the end of the sldie but attached to the end of the slide timeline, no problem as long as you don't change the slide timeline duration). Since it is the Next button (labeling items helps, believe me), you could have it starting later, and have the pausing point later as well. You can even make it start at the pausing point of the other buttons. You don't need to hide that button in that case, and the Show Bt_Next can then be replaced by a simple 'Continue', which will release the playhead and the next button appears, will pause at the pausing point of the next button (later than the other buttons) and all the other buttons will no longer be active.
SInce you are now hiding/showing instead of disabling/enabling buttons, group the buttons please. The actions will be much more manageable. If you want to keep one buttons visible in a group use:
I described this as first workflow in: Force Clicking Hotspots: Comparison 2 Workflows - eLearning
By grouping the buttons, doesn't that remove the option of changing states?
There is no Change State in your advanced action anymore, not for the buttons.
I see only a Change state for a Text Caption.
To guarantee the slide won't transition until NEXT is clicked, you can put a small clickbox in a corner that has NO ACTION, but is set to "pause until user clicks". The default pause point of a clickbox is the end of the slide, so there will always be a pause present. Your NEXT button, set to "go to next slide," will be the only thing that allows the progression to the next slide.
Again, as we have both strongly suggested, please name your objects so that all of us (including yourself) can more easily understand what the objects are when looking at the actions and timeline. This takes a little time to do, but makes troubleshooting much easier.
Please, have a look at my blogs about the Timeline. Adding another interactive object to that slide makes no sense at all! It has already so many interactive objects. As long as one interactive object with a pausing point is active, there is no need for an extra click box whatsoever, click box is a legacy object that I think will disappear in the future (is not allowed in Fluid Boxes). Hide all the buttons (in group) and show the active button will take care of that. As for the Next button it would be good as I explained to:
- If you keep the show/hide option for the Next button, move its pausing point a little bit to the right OR
- To get rid of that show/hide option, move the start of the timeline of that Next button to coincide with the pausing point of all the other buttons. Get rid of the Show Next Button line and replace it by Continue. This will only happen when all variables are set to 1, and playhead will continue until the pausing point of the Next button.
Here is a movie about the Timeline
As for differences between SWF and HTML output, can write books, but the timeline behavior is the same.
Hi, if I rename the buttons I have to change so many things on the advanced actions. I did not use shared actions since so many parameters so I'd have to change each AA. I can explain what the buttons are. Buttons 184 and 188-199 are all the "click to reveal button" and button 185 is the continue button. There are no other buttons. The faded images are SmartShape 33-45 in same order as buttons. The full color images are SmartShape 19-31 again in the same order. The variables 49-57 and 63-66 are just because I duplicated the slide and put it in a new project so the variables are always 0 anyway till clicked on. I don't think there is anything else. Hopefully this clears things up. I have all this on paper and confirmed each one matches with corresponding buttons, shapes and variables. That is not the problem.
Captivate allows name changes to objects - the advanced actions update to the new names automatically.
Yes, that is also a good solution.
I found a solution! Thank you so much!