我最近在制作一个小型HTML5项目,并将其整合到电子学习软件包中。从本质上讲,它就像一个小型HTML5游戏,用户必须成功完成才能通过该课程。但是我不了解SCORM或电子学习包。我认为很容易跟踪一个人是否已成功完成游戏作为html5中的变量,并用它来传递到课程的下一部分,说明他们是否通过。然而,当我将我的部分移交给正在将其整合到课程中的公司时,他们不确定它是如何链接的。
是否有一种简单的方法可以在SCORM页面之间移动(传递/失败)变量...或者根据HTML5中的变量选择下一步的哪个部分? 或者,有一种简单的方法来读取或写入可以存储在电子学习环境中的外部文件吗?
非常感谢任何建议。
答案 0 :(得分:1)
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可以读取其值。
答案 1 :(得分:0)
如果您有单独的HTML页面初始化,则需要您将所有内容包装在IFRAME中。主要原因是LMS可能正在监听页面之间的加载/卸载,因为每个页面都必须将连接发送回SCORM API,它可能“认为”SCO已卸载。有可能它不会,但我仍然谨慎。当然你也可以做单独的页面。
SCORM是一种JavaScript通信模型。我在GitHub上详细谈论它https://github.com/cybercussion/SCOBot/wiki。这将扩展所讨论的所有领域,并提供一些例子。
通常情况下,如果您在最低限度之后,您可以确定您是否使用SCORM 1.2或2004.然后确定您是否要适当地设置得分和状态以匹配。
完成=基本上进步。学生看得够了吗? 成功=通过/失败 - 他们得分足够高。
祝你好运。