0

我已经正确保存和更新了 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();

重复一遍:这个课程完成控制台.logs 就好像它在课程第一次实际完成时正确触发一样,但是只有当用户返回课程并单击已完成的组件时,课程才会在我们的 MLE 中注册为完成(这会再次触发目标完成和上述课程完成)。

我们如何设置目标会阻止第一次实际完成?还是与退出特征/暂停数据有关?

如果有人有任何指示,那就太好了!

编辑

我做了更多的测试并暂时取消了设置“cmi.objectives”的调用。课程完成现在可以正常工作。因此,目标的存在阻碍了课程的正确完成。是否需要设置一些额外的属性才能真正完成目标?

4

0 回答 0