Skip to main content
Participant
June 29, 2009
Question

Anyone know how to track user progress in an HTML menu? (Captivate 3)

  • June 29, 2009
  • 3 replies
  • 1415 views

I've been trying to figure out how to do this for a few days, but I thought I would ask to make sure that I am not attempting to reinvent the wheel...

I have many individual Captivate 3 modules (final total will be around 50). These will be organized into an HTML menu that serves as a TOC. What I would like to do is include a graphic next to each module link in the menu (say, a circle, for example) that turns into a check graphic once the user passes the test for that module. This will allow users to keep track of which tutorials they've completed.

I see that Captivate 3 offers the ability to launch a JavaScript when a certain score is achieved on a quiz. I would like to somehow use that trigger to change the graphic in the HTML menu next to the corresponding menu item. Is this possible? I thought perhaps it might be done with a cookie. There are gaps in what I know about JavaScript, however, so I can't quite picture the flow of events.

We're trying to make this work so that the tutorials can run from a CD or a Web server. I do not have access to the hosting server, and I am finding this somewhat limiting, since you'd normally do this with a session id. There is also no LMS, and the progress information is for the users' benefit alone.

Any ideas? Or is this impossible?

    This topic has been closed for replies.

    3 replies

    August 12, 2009

    I think you should be able to do that via JavaScript by turning on/off the visibility property of any image you want to use to indicate that a module has be completed. However, if you were using Captivate 4, then you could use the new variables and actions on events to achieve the same results but a lot easier and faster :- )

    You can check out this demo here (http://www.myshbp.com/demo/trackuserprogress.htm).

    Isaac

    Inspiring
    July 7, 2009

    Yes, what you want is possible, you will have to learn a little javascript, but that can be researched with "Bling".

    I have done what your trying to do.

    Simply, I would use a frameset.

    Put my checkmarks in a"<div>" in the frame that will contain my menu.

    Set up a javascript function in each of the html files that host the captivate swf.

    Each of these functions would contain js script to hid or show the div relating to the particular course in the menu frame.

    The function can also set js variables in the menu frame if I ever need to store anything there to send to an LMS or a database.

    At the end of my captivate course or after a certain score is achieved on a quiz.

    Have captivate call the js function to show my "<div>" to the user.

    Course is completed, the users can see that and is happy.

    Plus no matter how many times the users clicks on different course sections, the "<div>" completion status wont change unless the user refresh the entire frameset/webpage.

    Captiv8r
    Legend
    June 29, 2009

    Hi there

    Before you begin trying to concoct an elaborate solution, perhaps you might review Jesse Warden's Captivate Player?

    Click here to view his site where you may download it

    However, in grabbing that link and thinking about your situation, I'm thinking that may not work because it checks off the Captivate movie when it has been selected. You want the check to appear only after a certain score has been reached.

    So I'm thinking you would do this using JavaScript and a form. The form element would be the check box. The trick here (as you are probably already aware) is to pass the variable data between pages.

    Thinking out loud here: I'm wondering if you would gain anything by using a Frameset?

    Wishing I had a neat solution to toss out for you. Unfortunately I don't. Perhaps someone else does! Hope they share it if they do!

    Cheers... Rick

    Helpful and Handy Links

    jackie5Author
    Participant
    June 29, 2009

    Thanks Rick. The Captivate Player is helpful, and it is oh-so-close.

    But...

    The player proceeds from one movie to another and counts each as completed (with the green checkmark) regardless of whether the user has completed the entire tutorial or passed a quiz. Ideally, I'd like the checkmark to be contingent on the user passing the test. I guess I could make the movie loop around until the user passes... The biggest issue, though, is that the checks don't persist. Once the movie is closed, then everything seems to reset. Skipping between large-ish movies (20+ slides) doesn't always seem to work, either.

    I did intend to lay this out in a frameset, though that doesn't seem to get me any closer to a solution. I have three frames planned: left navigation, top instructions, and a large 800x600 frame where the individual modules will play. We want users to be able to skip around and work on any tutorial in any order. With the total number of tutorials we're planning, and given that people will be accessing them in a possibly random order, it's going to be important to track material that's been completed.

    I feel someone must surely have done something like this before (though perhaps with an LMS).

    If you or anyone else has any additional suggestions, I'd love to hear them!

    Jackie

    Inspiring
    August 14, 2009

    Hi have done this many times but it has all been done in Flash. Basically you can store a value in a Local Shared Object on the users PC and then read that value from another page/animation/menu. Each module in Captivate would have a Flash component that sets it as completed and then menu (which can be made in Flash or Captivate) would then read each of these to see the status and present the user with a check mark if completed.

    /Michael


    Click here to visit the www.captivate4.com blog