Hello Andrea,
I’ve built a custom template to fix this (and other Captivate quirks). To accomplish what you want:
1. After publishing your project, find “function Captivate_DoFSCommand” in the published htm page.
2. Within this function locate the line “} else if ( strFSCmd == "LMSSetValue" || strFSCmd=="SetValue") {“
3. Place the following code directly after the line in step 2 and before the strErr = eval('g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\",\"' + strFSArg2 + '\");'); line:
if(strFSArg1 == “cmi.core.lesson_status” && strFSArg2 == “incomplete”)
strErr = eval('g_objAPI.' + strFSCmd + '(\"cmi.core.exit\",\"suspend\");');
4. Do the same with “function Captivate_DoExternalInterface” (I’m not sure if Captivate is using ExternalInterface (I’ve read in numerous places it is an unfinished attempt) but I p[laced it there also just in case)
This is coded for SCORM 1.2, make adjustments for SCORM 2004 as necessary.
Raymond Sugel Sr![]()
eLearning Consultant
224-293-4135 (O)
847-370-6163 (C)
rsug...@pivotpointelearning.com
www.pivotpointelearning.com
--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To post to this group, send email to elearning-technolo...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/elearning-technology-and-development?hl=en.
Hello Andrea,
I’ve built a custom template to fix this (and other Captivate quirks). To accomplish what you want:
1. After publishing your project, find “function Captivate_DoFSCommand” in the published htm page.
2. Within this function locate the line “} else if ( strFSCmd == "LMSSetValue" || strFSCmd=="SetValue") {“
3. Place the following code directly after the line in step 2 and before the strErr = eval('g_objAPI.' + strFSCmd + '(\"' + strFSArg1 + '\",\"' + strFSArg2 + '\");'); line:
if(strFSArg1 == “cmi.core.lesson_status” && strFSArg2 == “incomplete”)
strErr = eval('g_objAPI.' + strFSCmd + '(\"cmi.core.exit\",\"suspend\");');4. Do the same with “function Captivate_DoExternalInterface” (I’m not sure if Captivate is using ExternalInterface (I’ve read in numerous places it is an unfinished attempt) but I p[laced it there also just in case)
This is coded for SCORM 1.2, make adjustments for SCORM 2004 as necessary.
Raymond Sugel Sr
Hello Andrea,
I’ve built a custom template to fix this (and other Captivate quirks).
I’m not familiar with Moodle, but is it possible when Moodle launches content it is in a “player” that is performing SCORM duties? Reason I ask this is I worked with a client’s customized version of SumTotal a while back and the custom version had a “player” for the content that handled SCORM duties. The content, on its own, was not SCORM conformant but when launched through this “player” SCORM actions were performed.
Raymond Sugel Sr![]()
eLearning Consultant
224-293-4135 (O)
847-370-6163 (C)
rsug...@pivotpointelearning.com
www.pivotpointelearning.com
--
--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To post to this group, send email to elearning-technolo...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/elearning-technology-and-development?hl=en.
Not sure how interesting they are, just trying to come up with a reason for the SCORM calls being made while the DoExternalInterface/DoFSCommand functions are not in play (commented out).
One way to confirm my thoughts is to publish the Captivate project with eLearning (Quiz Reporting) NOT enabled. Load it to Moodle and run it with the debugger. This will ensure Captivate is not making any calls to SCORM. See if you are getting any SCORM calls from the player. If this is the case try to hook up with someone who knows Moodle better than I do. It may be the “player” overrides SCORM calls made from Captivate, not sure.
It could also be in the settings you’re using when publishing the Captivate project, specifically the Report Status setting. There are two choices 1) Complete/Incomplete or 2) Pass/Fail. If it is set to Pass/Fail Captivate may not be trying to pass a call to set cmi.core.lesson_status to incomplete which is the only status where cmi.core.exit should be set to suspend. A lesson_status of fail is still considered by SCORM and every LMS I have worked with to be what is usually called Complete – Failed Test by LMSs. In other words the SCO is considered complete and there is no reason for cmi.core.exit to be set to suspend.
Raymond Sugel Sr![]()
eLearning Consultant
224-293-4135 (O)
847-370-6163 (C)
rsug...@pivotpointelearning.com
www.pivotpointelearning.com
-----Original Message-----
From: elearning-technolo...@googlegroups.com [mailto:elearning-technolo...@googlegroups.com] On Behalf Of giorg
Sent: Friday, January 14, 2011 7:30 AM
To: eLearning Technology and Development
--
Not sure how interesting they are, just trying to come up with a reason for the SCORM calls being made while the DoExternalInterface/DoFSCommand functions are not in play (commented out).
One way to confirm my thoughts is to publish the Captivate project with eLearning (Quiz Reporting) NOT enabled. Load it to Moodle and run it with the debugger. This will ensure Captivate is not making any calls to SCORM. See if you are getting any SCORM calls from the player. If this is the case try to hook up with someone who knows Moodle better than I do. It may be the “player” overrides SCORM calls made from Captivate, not sure.
It could also be in the settings you’re using when publishing the Captivate project, specifically the Report Status setting. There are two choices 1) Complete/Incomplete or 2) Pass/Fail. If it is set to Pass/Fail Captivate may not be trying to pass a call to set cmi.core.lesson_status to incomplete which is the only status where cmi.core.exit should be set to suspend. A lesson_status of fail is still considered by SCORM and every LMS I have worked with to be what is usually called Complete – Failed Test by LMSs. In other words the SCO is considered complete and there is no reason for cmi.core.exit to be set to suspend.
--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To post to this group, send email to elearning-technolo...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/elearning-technology-and-development?hl=en.
If you think the calls are coming from somewhere other than Captivate, then just replace your HTML file with a dummy one that has no Captivate object at all. �Just put some "Hello" HTML in there.Alright guys,
Launch it and watch your logs. �That will ensure that the API is not being called by your content (as it isn't in the picture).
eventually I won. I write this here 'cause maybe somebody else in the
future will need it.
All I did was to add the following lines:
if (strSCOfunction == "LMSSetValue" && strSCOproperty ==
"cmi.core.lesson_status" && varSCOvalue == "incomplete")
{
g_objAPI.LMSSetValue("cmi.core.exit", "suspend");
}
inside the datafromflash() function within the scorm_support.js file,
right before
if(strSCOfunction == "LMSFinish" || strSCOfunction == "Terminate")
and it works like a charm.
Thank you very much for your support.
Andrea
On 1/14/11 3:48 PM, John Campbell wrote:
If you think the calls are coming from somewhere other than Captivate, then just replace your HTML file with a dummy one that has no Captivate object at all. Just put some "Hello" HTML in there.
Launch it and watch your logs. That will ensure that the API is not being called by your content (as it isn't in the picture).
Alright guys,
definitely those 2 functions are not used in my case, and in my opinion they are used only if the client uses IE. Indeed, I found a function that is definitely called by the scorm: Finish(), because if I take it off then the final commits are not sent to the LMS. Now, I added inside the function:but nothing happens, so it must not be the right piece of code... Would be nice to have there something like Raymond suggested at the beginning:
strErr = eval('g_objAPI.' + strFSCmd + '(\"cmi.core.exit\",\"suspend\");');
CaptivateObj.SetScormVariable(strFSArg3, strErr);
if(strFSArg1 == “cmi.core.lesson_status” && strFSArg2 == “incomplete”)
strErr = eval('g_objAPI.' + strFSCmd + '(\"cmi.core.exit\",\"suspend\");');but now what's the right code?
Thanks a lot
Andrea
--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To post to this group, send email to elearning-technolo...@googlegroups.com.
To unsubscribe from this group, send email to elearning-technology-and...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/elearning-technology-and-development?hl=en.