我最近在做一个小的HTML5项目,该项目将集成到电子学习包中。从本质上讲,这就像一个小型HTML5游戏,用户必须成功完成才能通过课程。但是,我不了解SCORM或电子学习包。我认为,很容易跟踪一个人是否成功完成了游戏,并将其作为html5中的变量,然后使用它传递到课程的下一部分,以说明他们是否通过。但是,当我将自己的部分交给正在将其集成到课程中的公司时,他们不确定该如何链接。

是否有一种简单的方法可以在SCORM页面之间移动(通过/失败)变量...或者可以基于HTML5中的变量选择下一步要进行的课程?
另外,是否有一种简单的方法可以读取或写入可以存储在电子学习环境中的外部文件?

任何建议将不胜感激。

最佳答案

SCORM提供了一种称为“目标”的机制来跟踪通过/失败(或完整/不完整)和分数。

您需要设置的数据模型元素是:


  cmi.objectives.n.id(CMIIdentifier,RW)物镜的唯一标签
  
  cmi.objectives.n.status(“通过”,“完成”,“失败”,“未完成”,“浏览”,“未尝试”,RW)指示学习者是否已完成或满足了目标


因此,假设您引用了名为API的SCORM API,并且未设置其他目标,则可以执行以下操作:

API.LMSSetValue("cmi.objectives.0.id", "IDForYourObjective");
API.LMSSetValue("cmi.objectives.0.status", "passed");


然后,可以通过以下方式检查通过/失败值:

objectiveStatus = API.LMSGetValue("cmi.objectives.0.status");


如果可能还有其他目标,则需要检查计数(cmi.objectives._count)并使用它来确定下一个可用索引(而不是上面的0)。

如果您是唯一需要读写数据的人,则可以考虑使用cmi.suspend_data(这只是一个非结构化存储桶)。这不是我的第一个建议,因为您提到您的工作将与其他人的工作集成在一起,因此在避免验证他们也不会使用它的情况下,我会避免使用它。

更多SCORM运行时信息:https://scorm.com/scorm-explained/technical-scorm/run-time/run-time-reference/

如何找到SCORM API:https://scorm.com/scorm-explained/technical-scorm/run-time/api-discovery-algorithms/

在此响应中,我假设这将包含在SCORM 1.2单SCO程序包中。响应将是相似的,但对于2004年则略有不同(如您在上面的链接中所见)。如果这是多个SCO内容,则将您的工作打包到一个内容包中的任何人都必须将您创建的目标声明为“全局目标”,以便其他SCO可以读取其价值。

关于javascript - 在SCORM中跟踪HTML5变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47529246/

10-13 00:13