OK. That's strange. Most people complain about Captivate working exactly the opposite way and that slides ONLY get marked as completed when slides are played all the way through to the final frame.
If you open the TOC in Captivate and watch the ticks appearing as each slide is played, you should see the ticks (representing slide completion) ONLY appear when the slide finishes playing and the next slide begins.
Can you confirm that this is happening within Captiavte when you watch the TOC?
How are you determining in your LMS that each individual slide is marked completed as soon as it begins playing? LMSs don't usually do this.
I click through the course using the "Forward" button and as long as I hit every slide, it gives me a status of "Complete," even if I only play the first few frames. I've tested it in our LMS and on SCORM.com. It works the same way on both platforms.
I was using the tick marks in the TOC to track progress in the course, and it worked as you describe - no tick mark until after viewing all frames in the entire slide. However, I disabled the tickmarks when I learned that they are incompatible with my LMS tracking system. Here's what happened: I exited and relaunched the course, I was returned to the section from which I left (bookmarking worked), but all the tick marks disappeared. Since this would have been an agrivation to learners using the tick marks in the TOC to track their progress, I started to research a solution. I learned from this forum (in an answer you posted) that I couldn't use both "self paced" learning AND the LMS to track progress because they very often will conflict. That's when I decided to hide the tick marks.
When I use the LMS/SCORM 1.2 (which is required by my company) to track completed sections, it gives the behavior I've described above which is not what I want at all.
Have you tried turning off Resume Data bookmarking (check the Never Send Resume Data box in LMS Customisation) and use the Self-paced Learning bookmarking in the TOC settings instead?
Resume Data bookmarking is more used by LMSs to track which quiz question the user got up to. In your case, you seem to be more focused on tracking slide completions.
I did some quick tests a week or so ago on using Self-paced Bookmarking and it seemed to indicate that the user's progress through the TOC was indeed being reflected in the ticks even after leaving and resuming a module. Perhaps you should test it too to see if that type of bookmarking would better suit your needs.
Alternatively, if you still prefer to use Resume Data bookmarking, you could use TickTOC widgets to force ticks to appear in your TOC, even when slides were not viewed all the way to the end frame.
You can download trial version TickTOC widgets here: http://www.infosemantics.com.au/adobe-captivate-widgets/download-free-trial-widgets
Thanks for all your feedback, Rod. I really appreciate your expertise!
I did test the scenario you describe (show "status flags" or tick marks, check "Never Send Resume Data") and I still get the same result: I can use the "Forward" button to hit the first few frames of each slide, and get a "complete" status for the course. The tick marks work fine when I'm in the course. But if I exit and re-launch the course, all the tick marks disappear. I tested this on Scorm.com (but not in my LMS because it's down for the evening).
I'm experimenting with a work-around involving the Tick TOC widget you mentioned. I'm placing the widget at the end of each slide I want to be fully played. Then I set up a "phantom" slide corresponding to the slide I want to be fully viewed. The phantom slide is only a few frames and has no content. It's sole purpose is to prevent the user from passing the course unless the phantom slide is "completed." When the playhead hits the widget, it sets the status of the phantom slide as completed. Once all the phantom slides are completed, the user can pass the course. This method seems to work. I can't pass the course unless I play the last frames of each slide triggering the Tick TOC widget to check off the phantom slide.
The problem I'm having now is how to hide the phantom slides so the user can't nav to them and ruin my fix. If I place them in the middle, I can use the "on exit" action of the previous slide to skip them. But they still appear if I use the "Forward" button to skip through the slides. Next, I'm going to experiment with putting the phantom slides at the end and making them look exactly like the last slide, so if they use the "forward" button or the slider to nav to those slides, it won't confuse them. Unfortunately, if they are able access the phantom slides, they can spoil my work-around (not that most users would figure this out).
If I hide the phantom slides, they don't get published (or so I read in the widget instructions). Is this true? If so, it spoils my plan. If they still get published, this may be the way to go.
What do you think of this approach? It seems awfully circuitous to me. But whatever works, right?
Did you set Self-Paced Learning in TOC settings? I didn't see any mention of that in your last post. Just turning on status flags doesn't implement any bookmarking. So if you disabled Resume Data bookmarking but didn't turn on the Self-paced learning bookmarking then your ticks on TOC options would not be retained from one session to the next. (Self-paced Learning bookmarking writes some data to a Flash Shared Object on the end user's PC to record how many slides they completed. And it appears to be this data that is used on subsequent sessions to set the ticks in the TOC again.)
Is there any branching in your movie? If so, you need to remember that slides not visited on a branch will mean that entire branch in the TOC will not get ticked. The most common use of the TickTOC widget is to cope with this branching issue for achieving 100% overall completion of a course.
If you want to hide phantom slides, I would be using custom variables and Conditional Advanced Actions triggered by On Slide Enter actions to skip the user to another slide if certain conditions were not met.
You also need to remember that placing slides right at the end of a movie that will be branched to regularly from slides in the middle of the movie can cause delays in playback because in order to play those slides near the end, the Captivate movie has to render all slides in between. It's one of the quirks of working in Captivate. I'd go with the AAs and variables.
Yes. I did check the Self-paced Learning" option. Sorry, I forgot to mention that in my previous post.
I don't have any branching in my movie, but it did occur to me that I could hide the phantom slides on another branch. I've never used branching and was not able to get the phantom slides to appear anywhere, but on the main branch with my content slides. How do I create a branch anyway?
I can give Conditional Advanced Actions and custom variables a try. I'm not sure how to code this, but I can play with it. My main question in this case is: Can you tell Captivate to go to a certain slide even when the user is clicking the "forward" button? That has been the hardest part to figure out. If I can get that solved, I'll be a lot closer to making this thing fly.
Without getting your hands dirty with AS3 and learning how to code your own widgets you cannot really control what happens when the user clicks the Forward button on the playbar. It will always just go to the next slide.
The workaround is to use Conditional Advanced Actions to change what happens once the user ARRIVES at that slide. You can use the On Slide Enter event to trigger an Advanced Action that you design. This action can have conditions that check whether or not the user has done something and then use this decision to navigate the user away to a different slide of your choosing.
After many iterations, I landed on a solution that works.
- I put the phantom slides at the end of the course.
- I disabled the navbar and TOC on those slides, so if the user lands on one using the slider, they can't nav to other phantom slides.
- The only way to nav away from a phantom slide is via a "Return to Course" button that returns them to the last slide they visited. Since the phantom slides are only 1/2 second in duration, It would be next to impossible to land on all of them (there are 12 all together) using the slider.
- If they get to the first phantom slide by clicking the "Forward" button from the last legitimate slide in the course, they will be greeted with the same "Return to Course" button with no other navigation options.
- All the legitimate slides now have a Advanced Action that re-enables the TOC and navbar, so if they do choose to return to the course, they get their navigation back.
All this without having to hack the Actionscript or get fancy with Conditional Advanced Actions. It does add a level of complexity to the course programming, but it's better than what I had before - a course with no way to track whether the user had viewed a slide all the way to the end.
A bonus feature of this solution is that I can choose which slides the user needs to view to the end and which they do not.
Anyway, thanks for all your advice on this. I hope by documenting the solution, it might help someone else experiencing the same situation.
Make sure you test your solution under exactly the same conditions as it will be delivered to end users. This means if your solution will be on a web server or LMS, test it from there, not on your local hard drive.
If your project files only have a handful of slides each, it probably won't cause an issue that your users have to jump back and forth between these phantom slides positioned at the end. However, I wouldn't personally be placing them at the end of the project if you were dealing with scores or hundreds of slides. End users might begin to complain about lengthy pauses before slides load.
Excellent points, as usual, Rod.
My courses ony have about 14-18 slides each. The Tick TOC widget will be referencing the phantom slides when it hits the end of the corresponding legitimate slide. But, the user will most likely never actually play the phantom slides. So I don't hink there wil be an issue with skipping to the end. Unless you're saying the slide at the end has to be loaded before the widget can reference it.