I am brand new to Captivate 6 and have encountered my first coding problem. I have six instructional objectives and would like to display them one at a time with a mouse click on a button. I would like some guidance either with making what I a trying to do work or in the alternative telling me what I should be doing instead. Here is what I tried to do.
1. I created 6 instructional objectives on a single screen.
2. Then I created a user variable "increment_objectives." It's starting value was set to 0.
3. Next, I built an advanced conditional action. It contained seven conditional statements, each built the same way. The purpose of the seventh was to move to the next slide after all instructional objectives were viewed.
The advanced conditional action IF statement was: If increment_objectives = x then (where x varied from 0 to 7)
The ACTION statements contained the names of the six instruction objectives (objective_1 through objective_6) and these were either shown or hidden, based upon the increment_objectives value.
4. This advanced conditional action was attached to the enter frame on the slide and "no action" was on the exit frame on the slide.
5. On a Button I attached an increment value that added 1 to increment_objectives variable.
6. I set all frame objects to "duration of slide" turning off all timing increments.
I had expected that this would increment the increment_objectives variable when the mouse was clicked and that the advanced actions conditional statements would be interpreted and display the objectives one at a time. How wrong I was. Not only did they not display, but after a few seconds, the screen would flip to the next slide.
Can you offer me some help?
What did you use to trigger calling the Advanced Action? From what you just described, there is nothing to trigger the action. At least beyond the initial triggering upon entering the slide.
Normally you want a Button or Click Box or other trigger to call the Advanced Action after each interaction.
Hope this helps a smidge... Rick
Helpful and Handy Links
Thanks for the reply. The Advanced Action is attached to the Slide's enterframe. The increment was attached to the Button. I am used to using Lingo and Java in Director and I assumed (probably wrongly) that the Advanced Action on the enter frame would be updated each time the button was clicked and the clicked button would increment the variable. Apparently, this is wrong. (I'm guessing from your response that enter frame for Captivate may be more similar to "Begin Sprite" in Director.)
Problem is that if I attach the Advanced Action to the button, then how do I increment the counter? Does that have to take place in the Advanced Action as an Action?
Any direction will be appreciated.
Yes, you would increment the counter in the Advanced Action. As it stands, the slide is entered and the advanced action is triggered. The button click only increments the counter. You need to amend the Advanced Action to increment the counter, then perform the evaluation.
Hope this helps... Rick
Helpful and Handy Links
I moved the conditional advanced action described in item 3 in the original email onto the button, as you suggested.
Next, I added a additional ClickBox to stop the slide from advancing (saw this in another post).
Finally, I could not see a way to add the increment to the conditional advanced action so, I decided to use the Interactive Widget from InfoSemantics to identify a "success" on the click, linking mousedown to my button and pausing continue. The InfoSemantics Interactive Widget was assigned the Increment, so every time I clicked the button, a success, it updated the counter.
Works perfectly now. Six clicks on the button reveals each course objective one-by-one, allowing complete 508 compliance with tab key as trigger, and the last click advances to next slide.
Thanks for the key thought: Actions must be attached to buttons or clicks, there is no "loop monitor." At least I assume there is no frame loop that monitors interactions?
Also, I am wondering is there no debugger program that allows a review of code as it is run and displays values as you go? Seems this would be a valuable thing to have, but I have seen nothing like it. Do you know of any such animal?
Thanks for using one of our widgets. I was thinking of suggesting that you use the Event Handler because it has preference settings to Disable Continue and Reset Success/Fail Criteria that effectively allow you to pause the slide while merrily clicking on something to trigger actions. But it looks like you found that anyway.
As for debugging what's going on inside Captivate, you may find this post useful:
Your events handler widget works great. Not sure how I would have added the incrementing to the Conditional Action without it.
Also thanks for your additional response about a debugging program. I followed the link out to CP X-ray Widget. It says for CP 5.0 or 5.5, but I am going to download it and try it. Also downloaded Monster as required. These might be just what the doctor ordered.
Europe, Middle East and Africa