We have a brand new look! Take a tour with us and explore the latest updates on Adobe Support Community.
Copy link to clipboard
Hi everyone! First time poster here. I’m creating a curriculum for a client that wanted it created with Captivate. It’s a fish ID course, so each slide is a fish image. There’s a question mark at the bottom that, when clicked, opens the fish name. I made it a shared action so that when the user advances to the next slide, it is supposed to disappear.
It worked fine for one export, but now the actions apparently no longer work. Additionally, it requires two clicks to trigger the pop-up. I got these buttons working over two months ago at this point, and since it was my first time working with advanced actions, I can’t remember for the life of me what I did. In the one screenshot of the Advanced Actions box, you’ll see that one setting is left blank. I don’t remember why that’s like that but it’s the same in the archived version of the project where the actions work correctly.
If anyone can advise, I’m happy to share a link to the project. It’s a massive file; every slide is an image so it’s 776.2 MB (even when saved as 150 dpi at 1280 x 720). I’ve included some screenshots that might be relevant. Looking forward to some answers!
Copy link to clipboard
Why is each slide over 48 seconds long? There does not appear to be audio on the slide so it's not really necessary for such a long timeline. Unless there is some compelling reason for such lengthy timelines, I recommend you make each slide just 3 or 5 seconds in length. It will be easier to debug what is happening.
I think part of your problem might be connected to toggling that variable Togglename. Set up a text caption timed for Rest of Project and insert the variable so that it displays the variable's current value on all sildes. Then see if the values match what you expected.
If users are supposed to click one of the Next or Back buttons to move to each slide, it would probably be better to have those buttons execute a Shared Action that first hides the text object on that slide and then jumps back or next. That way you would not need to be toggling any variables.
Thanks so much for the quick reply. In terms of the lengthy slides, that was one of the recommendations I found for getting around Captivate's automatic slide advancements. If you know of a better way, I'm all ears!
The toggle is actually because I need the question mark to both reveal and hide the name (per the client's request). So the question mark needs to both reveal and hide the name, but if the user advances to the next slide without clearing the name, the name needs to disappear when they advance. How would you recommend structuring those different actions?
Whoever told you to make the slides long like that did not understand how the Captivate timeline works.
The 'better way' is to simply set one of those buttons on the slide to pause it at about 1.5 seconds in. There's no need to do anything else.
OK. If I understand you correctly, the client wants clicking on the question mark multiple times while still on the same slide to cause the name to appear and disappear. Is that correct? If so, then yes I could see a reason for having the toggle variable.
However, If the learner really only needs to ever reveal the name of the fish ONCE per slide, and clicking the Next or Back buttons could be used to hide the text caption before moving to another slide, then I would see no reason for requiring a toggle variable.
Great! I reduced the length of each slide and set a pause point for 1.5 for one of the objects.
The client does want the ability to toggle it on and off, so unfortunately I think the toggle variable will need to remain. I inserted a text caption to show the variable across the project, but it was consistently 1 (which I think is correct?). Do you have any other suggestions for what could be happening?
I also tried setting the "On Enter" action to be "Hide" (that button) but that didn't work either. Can that action not be used with objects that have show/hide coding? (I saw a similar recommendation on this other thread you were on resetting a slide upon reentry ).
If the toggle variable is only ever showing a value of 1, then that is telling you that something is wrong. If the toggle action is working correctly then the value should move from 0 to 1 and back to 0 etc.
The ON Slide Enter event can be used to execute pretty much any action that is valid for a given slide. So once again, something is not right if a simple HIDE action is not working.
First find out WHY the toggle variable is not changing in value. Remove all the complexity you can and get one thing working at a time.
Do you have any recommended step-by-step tutorials for what I'm trying to accomplish? I figure it's a pretty simple goal but I'm feeling stuck. The end goal is for it to be a shared action; is trying to set it up that way initially getting ahead of myself? I was trying to follow this thread (How do I create a toggle (hide/show) button in Captivate 5?) but don't understand the purpose of the expression statements.
There are over 100 slides that require the same action; so a shared action seems pretty critical.
Oh man--okay, I was wrong. The variable is changing and I bet it indicates what's going wrong.
When I initially go to a slide (and the name is hidden), it's at 1. When I click for the first time (and the name does not pop up), it switches to 0. When I click the second time (hence the double click required to activate it), the name pops up and the variable returns to 1.
I don't understand how the variable can be at 1 both when I initially access the slide, and the name is hidden, as WELL as when the name appears after the second click?
OK. That's more like what we need to know.
Normally these tracking variables would be set with a default value that is appropriate for the Hide or Show status of the object when the project is open. So if you wanted the variable to be 0 when the object is hidden and 1 when the object is visible, but the object should be hidden at the start, then the default value of the variable would be set to 0, and be changed to 1 whenever the object is shown and vice versa.
Although the toggle action is very useful, I think you will find that for your specific requirement you might need to accomplish the toggling of the object using a Conditional Action that first checks the current value of the tracking variable so that it knows which action (HIDE or SHOW) it needs to take. This also means that instead of using the Toggle action to change the variable, it's a little safer to explicitly set the value to whatever it should be based on the visibility of the object.
The idea is that the variable must always correctly reflect the current visibility of the object.
Apologies for the long radio silence. I've been investigating the variable issue and cleaning up the file overall. I have two things happening: 1, I've executed a shared action to allow the q mark in the bottom right to act as a toggle. I also have the slide set to hide the name ID on enter.
When I do the 5-slide preview, the Name-ID is hidden and the variable reads at 1. When I select the q mark to execute the shared action that is revealing the name-ID, the variable reads at 0. If I advance to the next slide, the variable still shows as 0, even though the next slide's name-ID is still hidden. This is when I need to double-click: The first click on the q mark sets the variable to 1 again. The second click sets it to 0 and the name-ID appears.
If I understand your previous response correctly, the variable doesn't necessarily reflect the visibility of the object? They can be operating independently of one another, so the variable can be "tricked" into being at the variable that should show the name-ID, but the name-ID hasn't actually been triggered?
No I don't think you are correctly understanding me.
The variable's value doesn't get magically changed to another value just because the image visibility is changed by an action (Standard, Conditional, Shared, whatever). You the designer of the interaction must build in the necessary extra ASSIGN action that not only change the object's visibility but also explicitly sets the variable's value to match.
The reason you need the variable in your situation is that there is no option in Captivate conditional actions that allows you to just specify what should happen based solely on whether or the Visible In Output property of the image. If there were this functionality in Captivate then you could use something like:
IF imageBlah's Visibilty is Not Visible in Output
Instead what you have to do is use the value of the tracking variable to indicate what the image's current visibility is and then perform the necessary actions. So the conditional action becomes something like:
IF var_Tracker's value is equal to 0 (which would mean the image should NOT be visible)
ASSIGN v_Tracker with 1
ASSIGN v_Tracker with 0
So as well as changing the visibility of the image itself, you also need to have additional actions that change the value of the tracking variable. This is necessary in Captivate's conditional actions because you can only really use User Variables or System Variable values in the condition statements.
This is another one of those areas where Captivate lags behind Storyline, which is able to use Object States and other types of values in conditional statements. Hopefully Adobe will finally see the need to improve Captivate's interactivity in the next version, rather than just bolting on another seldom-used WOW feature.
(Lilybiri, I had seen your blog post before--that's why I used the toggling in the Shared Action previously).
RodWard, I do currently have a toggle established in the Shared Action (see below).My understanding had been the below would be enough to both achieve the action and reset it. However, based on your above breakdown, it seems my setup was backwards--when the rollover was equal to 0, I set it to hide the rollover, not have it visible.
I've updated the shared action so that instead of the toggle action, it incorporates an assign action. Per your above response, it is now set to be:
IF v_NameRollover value is equal to 0 (which would mean the image should NOT be visible)
ASSIGN v_NameRollover with 1
ASSIGN v_NameRollover with 0
However, there seems to be some type of inconsistent glitch occurring. The first time I previewed the slide, the variable was still initially is assigned to 1 while the image was hidden. The first click of the reveal button reset it to 0 and the second click set it to 1 and revealed the image. Whatever value the variable is set to when I exit the slide is the value the next slide will be on (i.e., if I toggle between slides and the variable is at 0, it will be 0 for both slides. Once I trigger it so that it's 1, it will be 1 on both slides).
I feel like I'm SO close but something is still missing. Maybe I'm misunderstanding the correlation between the parameter (i.e., [Fish_name]) and the variable v_NameRollover?
I do really appreciate your patience and willingness to share your expertise on this.
I like the toggle command a lot. However that doesn't exclude the the need for a Reset action triggered On Enter for a slide if you want it to restore the situation to a default situation. That can be a shared action as well, but this time you need to use the Asszign command for the variable.
Would you be able to clarify a little bit more about what you mean? I'm also happy to share a truncated version of the project with you or RodWard if either of you are willing to try to unpack what's going on here. I have the slide set to hide the fish name on enter. Would it be better to change the on-enter action to be resetting the variable to 0?
Figuring out this glitch is the last thing I need to do before the curriculum is done so I'm eager to get this figured out. This curriculum is going to be a template for 12 others so I need to figure this out before I begin replicating it across the board.
I meant to use the On Enter action of the slide to reset the situation as it was the first time.
It is perfectly possible to use the Toggle command instead of the Assign command in the conditional action as I explained in the blog post you mentioned before. But if you want the image to be invisible when the slide is revisited you have to use two commands in the On Enter action of the slide:
Assign v_visib with 0
In this situation, with that standard action, you cannot use the Toggle command but need to use the Assign command for the variable.
You only have to use this On Enter action if you want that reset. If the image may remain visible, the variable was toggled to 1 there is no need to do this.
Thank you so much! This finally fixed it. So in summary, I did not realize that a variable's literal value had to be intentionally changed; I had mistakenly thought it simply reflected the variable's state. Upon understanding that, and making the "on enter" action a shared action too that both hid the image AND changed the variable's literal value, I stopped mismatching the variables and their literal values upon entering the slide.
Thank you to you and RodWard for all of your patience in helping me figure this out.