Copy link to clipboard
Copied
Hi,
I'm creating a responsive project in Captivate 9 and I'm having some issues getting my buttons to work the exact way I'd like them to.
My setup is this: A single slide with an embedded video object in it, the video object has several different states (five in this instance) and for each state there is a different video embedded. The navigation I have set up underneath the video object goes as follows:
- A home button to take back to main slide (one previous title slide before the main slide)
- A previous button to move backwards in the state rotation of the video object
- A next button to move forwards in the state rotation of the video object
- Numbered buttons, 1-5, to skip to whichever state of the video object you'd like to see (different videos)
- An Info tab button which will trigger to a different state of itself with information about the current video being displayed
It's a lot of state changes going on and sort of confusing, but I almost have it to where I'd like it. Basically I'd like for the user to be able to use either the numbered buttons or the previous and next buttons to move through the different videos, and then on each video I'd like them to be able to hit the info button to see extra information about the video. I have created a sort of highlight/overlay over the numbered buttons within the states of the video objects so the user has some feedback as to which video they are currently on.
I got the project working to the point of where the user could navigate the states of the video with the numbered buttons, then by using a tracking variable which changes as each numbered button is pressed the info button would know which state to change to based off of the current state of the video object. (I hope I'm explaining this well). I came into difficulties when I realised that by using the next and previous buttons to change the state of the video it wasn't triggering the tracking variable change which happens when the numbered buttons are pressed so the info button would not respond correctly when the user used the next/previous buttons. I tried making it so that the tracking variable would change with the press of the next/previous buttons as well by assigning in the appropriate number, however I ran into the issue then where all the actions of the advanced action would be true so when you hit next it would run through all the numbers and end up back at one (I'm assuming that's what happened, it would just stay on the first state of the video object). So I read one of Lilybiri's blog posts (Blog after Posterous? - ClickClick - Captivate blog) and have been attempting the incremental method she describes in the post, which worked with the next button for moving through the video states one by one, however, it resulted in a new issue - the tracking variable number is getting off somehow and so the info button isn't always triggering to the state it should be. And another issue - I can't seem to replicate this method with the previous button by decreasing the tracking variable number. With my previous button it is skipping over states.
Sorry this is such a long post, and I may need to provide more information to get help, but if anyone has an idea of how to get the navigation I'm trying to achieve, your help would be awesome. I've attached a screenshot of my interface to help visualize what I'm working with:
Thanks!
This should work, I used different labels.
For the numbered buttons I created this Shared action (the var is v_state, Normal is invisible to user, one till six are the states with video):
For the Previous button, this advanced conditional action:
And for the Next button something similar:
Copy link to clipboard
Copied
You point to my blog...thanks.
I understand what you want. What is missing are the exact actions you are triggering by the buttons. Is it possible to upload screenshots of the actions?
Since you have to track the number of the video, it will not be possible to use the 'easy' commands 'Go to Next State' and 'Go to Previous state' which are only available as simple actions and you will need a shared or advanced action to be able to increment/decrement the tracking variable.
Copy link to clipboard
Copied
Thank you for the quick response - your blog is very helpful btw!
I've taken some screenshots of my actions. First, the on enter action of the slide which sets the tracking variable:
Then each numbered button has an action to change the video state, assign a new number to v_tracking, and to change the state of the info button (SmartShape_47) to normal (that is there so if users change the video while the info tab is open it will reset). I have the number 1 set v_tracking to 0, because when it was set to 1 that seemed to mess with my next button action and cause it to skip states.
The above action looks the same for each numbered button, just changes v_tracking to 2, 3, 4, 5 depending on the button, and changes which video state it changes to.
For my next button I start with setting the increasing change, using the 'always' method you mentioned in your blog:
Then there are five conditional actions after that, depending on what v_tracking is set to, it will change the video object state accordingly. I also put the change to set the info tab button back to normal in each of these:
The final action of my next button resets v_tracking back to 0:
My previous button is setup the same way as my next button, with the always as the first action:
Then it's the same as my next button, except I assign v_tracking to 5 when v_tracking is equal to 0 so it goes from state 1 to state 5. (The last time I tested the project this action was when v_tracking is equal to 1, but that wasn't working so I changed it, but I haven't tested this version yet):
Finally, my info button. it's set to change it's state depending on what v_tracking is at. It also shows a close button I made which appears whenever the info layover is open and goes away when you click out of it (I achieved with a clickbox):
The info button has an action for each number (1-5) to change to the corresponding state. So it only works properly as long as v_tracking is assigned to a number from 1-5 and provided it is on the correct number corresponding with which state of the video object the user is currently on (out of the five video states).
Those are the actions I have set up at the moment. Am I missing something obvious?
Copy link to clipboard
Copied
You seem not to know the Preview Action button: it is the first button in the top right control bar of the Advanced Actions dialog box, looks like a play button. That allows you to see all decisions at once, would be easier for me to see the whole image.
I suspect a risk that you have negative numbers, which would cause problems.
Copy link to clipboard
Copied
I was unaware of the preview action button. Here are my actions again.
Next Button:
Previous button:
Info Button:
I hope this is easier to read.
Thanks.
Copy link to clipboard
Copied
Much easier, thanks!
I am bit tired, almost midnight. Can you have a little bit of patience? I suspect an issue when the tracking variable is bigger than 5 or less than 0, which is possible with your setup. I would avoid using 0 or negative numbers anyway.
Copy link to clipboard
Copied
No problem! Take your time, I appreciate all the info.
I'll keep trying my best at the issue in the meantime.
Thanks!
Copy link to clipboard
Copied
This should work, I used different labels.
For the numbered buttons I created this Shared action (the var is v_state, Normal is invisible to user, one till six are the states with video):
For the Previous button, this advanced conditional action:
And for the Next button something similar:
Copy link to clipboard
Copied
I've never used shared actions before, I'm a little confused on that part. If I understand correctly, each numbered button will still assign the variable to a number (1-6) which will change the state of the video object (videos 1-6), but is the shared action only the first button saved as a shared action? Are all the numbered buttons somehow combined into one shared action? I currently have it set up so that each numbered button has it's own standard action.
Copy link to clipboard
Copied
I have several blog posts about shared actions.
Dare to Share - part 1 - Captivate blog
Dare to Share - part 2 - Captivate blog
Parameters in Shared Actions - Captivate 7 vs. 8 - Captivate blog
The last one is important: you have two items that are automatically marked as parameters, but one that you have to mark: the literal 1.
This is the most efficient way and a very well suited use case.
You set up that action as you would do for an advanced action. Then choose the Save as Shared action button, and define the three parameters:
When you have created the action, you assign it with 'Execute Shared Action', click on the {P} button and define the 3 parameters. For the first button it will be 1 and the state One, the object will always be Stateobject. For the second button it is 2 and the State Two etc.. So each button gets the same shared action but with different parametes. It is like instances of one advanced action, save on file size and easy to manage. You'll see the shared action in the Library, and its Usage. You can easily reuse it in other projects as well.
Time to start with shared actions, they have a lot of advantages.
Copy link to clipboard
Copied
Thank you SO MUCH! I finally was able to test this out after the holiday weekend and it is working wonderfully.
Copy link to clipboard
Copied
You're welcome, you could see that I tested it out on a real project, will probably blog about several work flows as an introduction to shared actions.