我已经正确地保存和更新目标SCORM 1.2,但我似乎无法触发实际的课程完成。当课程加载到我们的测试管理学习环境(MLE)中时,我们会得到以下行为:
当最后一个目标完成后,课程完成将按预期启动。
SCORM console.log-ing表示已成功记录课程完成情况。
当用户关闭课程窗口时,课程完成实际上未在我们的MLE中注册。
当用户返回课程并完成任何目标(之前已完成所有目标)时,课程完成将按预期再次启动 - 但这次当他们关闭课程窗口时,课程完成已在我们的MLE注册。
那么,我应该包括退出特征吗?
以下是我们设定目标的方法:
vault.SCORM.set('cmi.objectives.'+numberOfObjectives+'.id', tempComponentString);
vault.SCORM.save();
vault.SCORM.set('cmi.objectives.'+numberOfObjectives+'.status', 'incomplete');
vault.SCORM.save();
以下是目标的完成方式:
vault.SCORM.set("cmi.objectives." + pages[pageId-1].componentSCORMIndexesById[element.componentId()] + ".status" , "completed");
vault.SCORM.save();
这些都很好。这是课程完成的问题所在。这是代码:
vault.SCORM.set("cmi.core.lesson_status" , "completed");
vault.SCORM.save();
重复一遍:这个课程完成console.logs就好像第一次课程实际完成时已正确启动一样,但是当用户返回课程并单击一个时,该课程仅在我们的MLE中注册为完成已完成的组件(触发客观完成并再次完成上述课程)。
我们是否已经设定了第一次阻止实际完成的目标?还是与退出特征/暂停数据有关?
如果有人有任何指示,那就太棒了!
编辑
我已经做了一些测试,并暂时取消了设置' cmi.objectives'的电话。课程完成现在可以正常工作。因此,关于目标的存在会导致课程无法正确完成。是否需要设置一些额外的属性才能真正完成目标?