所以,我正在开发一个人们可以创建演示文稿的网站。该网站具有以 SCORM 格式(1.2 或 2004 中)导出演示文稿的功能。我现在正在研究这个功能,这是我第一次见到 SCORM。
因此,在我的演示文稿中,有一些按钮可以将您重定向到其他幻灯片。例如,您在幻灯片 4 上,按钮会将您重定向到幻灯片 7。
目前,我正在使用一个 SCO(Sherable Content Object)构建 SCORM,所有导航均由我在演示文稿中制作的自定义导航栏处理。
让我们讨论实际问题。我想在没有自定义导航栏的情况下构建演示文稿,以便 LMS(学习管理系统)可以处理导航。我通过创建多个 SCO(每张幻灯片一个 SCO)来做到这一点,但我没有找到重定向按钮的可能解决方案。单击按钮时如何从幻灯片(SCO)4“跳转”到幻灯片(SCO)7。是否可以从运行时 API 中实现,在 1.2 中,或者可能仅在 2004 年中,或者根本不可能。
编辑:因此,我尝试使用 Continue
或 Continue
实现 adl.nav.request
scorm 2004 第 4 代,但我没有得到任何运气。我通过导航请求 - choice
做到了,但是 continue
一直返回 false
初始化 Scorm Api 后工作正常,我这样做:
console.log(ScoApi.api.GetValue('adl.nav.request_valid.choice.{target=4}'));
console.log(ScoApi.api.GetValue('adl.nav.request_valid.continue'));
if (ScoApi.api.GetValue('adl.nav.request_valid.choice.{target=4}')) {
ScoApi.api.SetValue('adl.nav.request', '{target=4}choice');
} else {
console.log('Not supported!');
}
.. 我从 中得到
和 Moodle 中的两个true
表示 choice
和 false
表示 continue
cloud.scorm.com 中的 console.log()未知
。 (未知
是否意味着 LMS 不支持它们?)
在我的 list 中,我有 controlMode ,其属性定义如下:
<imsss:sequencing>
<imsss:controlMode choice="true" choiceExit="true" flow="true"/>
</imsss:sequencing>
选择 - 允许学习者选择他们查看内容的顺序 内容。
流程 - 要求学习者按照以下定义的顺序查看内容 教学设计师
选择退出 - 控制学习者是否可以选择事件之外的事件 通过选择聚合。
这就是我读到的关于他们的内容。我尝试过改变它们,但结果是一样的。我在这里做错了什么? :(
这是我的 list :
<?xml version="1.0" standalone="no" ?>
<manifest identifier="com.scorm.manifesttemplates.scorm2004.4thEd.nometadata" version="1"
xmlns = "http://www.imsglobal.org/xsd/imscp_v1p1"
xmlns:adlcp = "http://www.adlnet.org/xsd/adlcp_v1p3"
xmlns:adlseq = "http://www.adlnet.org/xsd/adlseq_v1p3"
xmlns:adlnav = "http://www.adlnet.org/xsd/adlnav_v1p3"
xmlns:imsss = "http://www.imsglobal.org/xsd/imsss"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd
http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd
http://www.adlnet.org/xsd/adlseq_v1p3 adlseq_v1p3.xsd
http://www.adlnet.org/xsd/adlnav_v1p3 adlnav_v1p3.xsd
http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd" >
<metadata>
<schema>ADL SCORM</schema>
<schemaversion>2004 4th Edition</schemaversion>
</metadata>
<organizations default="158ltd.omo.org">
<organization identifier="158ltd.omo.org">
<title>sdasdf</title>
<item identifier="course_main_folder">
<title>sdasdf</title>
<item identifier="3" identifierref="54182fce77661">
<title>1</title>
</item>
<item identifier="4" identifierref="54182fce77b28">
<title>2</title>
</item>
<item identifier="5" identifierref="54182fce77ebd">
<title>3</title>
</item>
<item identifier="54182fce786c7">
<title>visible group</title>
<item identifier="6" identifierref="54182fce784f8">
<title>Wooho</title>
</item>
</item>
</item>
<imsss:sequencing>
<imsss:controlMode choice="true" choiceExit="true" flow="true"/>
</imsss:sequencing>
</organization>
</organizations>
<resources>
<resource identifier="54182fce77661" type="webcontent" adlcp:scormType="sco" href="content/slide_3.html">
<file href="content/slide_3.html" />
</resource>
<resource identifier="54182fce77b28" type="webcontent" adlcp:scormType="sco" href="content/slide_4.html">
<file href="content/slide_4.html" />
</resource>
<resource identifier="54182fce77ebd" type="webcontent" adlcp:scormType="sco" href="content/slide_5.html">
<file href="content/slide_5.html" />
</resource>
<resource identifier="54182fce784f8" type="webcontent" adlcp:scormType="sco" href="content/slide_6.html">
<file href="content/slide_6.html" />
</resource>
</resources>
</manifest>
最佳答案
对于许多 LMS 系统上的部署,他们设置规范的方式是 SCORM 2004 序列和 imsmanifest.xml 中的导航的混合。这是包装(内容聚合模型)规范的一部分。其次通过“adl.nav.x”利用新的运行时功能。
我个人认为规范的这一部分很棘手,因为您正在请求(在 SCO 内)并且您组织中的所有 SCO 都需要相互了解。这意味着您的 CAM 具有所有事件和/或资源的标识符,并且您的 SCO 需要知道他们正在请求通过这些 ID 移动到内容。这称为“选择”导航请求,您可以在其中传递您想要前往的目标:
继续或上一个:
if (wrapper.GetValue("adl.nav.request_valid.continue") === 'true') {
wrapper.SetValue("adl.nav.request", "continue");
} else {
// not supported (fail over)
}
跳过、跳转或选择,正如他们在文档中提到的那样:
if (wrapper.GetValue("adl.nav.request_valid.choice.{target=PAGE-D}") === 'true') {
wrapper.SetValue("adl.nav.request", "{target=PAGE-D}choice");
} else {
// not supported (fail over)
}
此外,在“序列”和“导航”中,您可以选择控制流程 - 学生是否可以自由导航,仅在其他选项中前进。从技术上讲,您可以通过启动数据或参数将 CAM 标识符传递到每个 SCO 中,这样您就知道可用的内容。
您可以使用简单排序规则直接控制一些所需的行为,该规则具有用于跳过、退出、重新启动等的前/后标准...这允许您设置关于学生如何完成类(class)的表现规则。尽管如此,我强烈建议您阅读 SCORM SeqNav PDF via ADL如果您的 LMS 未采用第 4 版,请查看第 3 版(2009 年修补)。您可以直接从 IMS Global 获得有关 IMS 简单测序的更多详细信息。 ADL 和 IMS 之间在一些较高的观点上似乎存在一些争执,但这仍然很有趣。
手动编辑 XML (imsmanifest.xml) - 您可以通过添加以下内容来控制全部或部分类(class)结构的顺序:
<imsss:sequencing>
<imsss:controlMode choice="true" flow="true" />
</imsss:sequencing>
flow 默认为 false,但 true 允许对请求进行排序。 选择默认为 true。
我将提供一个更完整的示例 (zip)。我确实注意到我在上面的 if 语句中检查了一个 bool 值,它实际上响应“true”。所以这是我的疏忽。
通过前一个、继续和选择选择“adl.nav.request”的示例。但需要 choice='true' 才能起作用。
https://dl.dropboxusercontent.com/u/3459294/scorm/one-page-progression.zip
管理序列的唯一方法是深入研究前提条件规则和操作。
谢谢, 标记
关于javascript - SCORM:单击演示文稿中的按钮时在 SCO 之间跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831980/