javascript - SCORM:单击演示文稿中的按钮时在 SCO 之间跳转

标签 javascript jquery html scorm presentation

所以,我正在开发一个人们可以创建演示文稿的网站。该网站具有以 SCORM 格式(1.2 或 2004 中)导出演示文稿的功能。我现在正在研究这个功能,这是我第一次见到 SCORM。

因此,在我的演示文稿中,有一些按钮可以将您重定向到其他幻灯片。例如,您在幻灯片 4 上,按钮会将您重定向到幻灯片 7。

目前,我正在使用一个 SCO(Sherable Content Object)构建 SCORM,所有导航均由我在演示文稿中制作的自定义导航栏处理。

让我们讨论实际问题。我想在没有自定义导航栏的情况下构建演示文稿,以便 LMS(学习管理系统)可以处理导航。我通过创建多个 SCO(每张幻灯片一个 SCO)来做到这一点,但我没有找到重定向按钮的可能解决方案。单击按钮时如何从幻灯片(SCO)4“跳转”到幻灯片(SCO)7。是否可以从运行时 API 中实现,在 1.2 中,或者可能仅在 2004 年中,或者根本不可能。

编辑:因此,我尝试使用 ContinueContinue 实现 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!');
}

.. 我从 中得到 true 表示 choicefalse 表示 continue cloud.scorm.com 中的 console.log()Moodle 中的两个未知。 (未知是否意味着 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/

相关文章:

jquery - 一旦发布我的网站 javascript 就无法启动

javascript - jQuery 如果带有类的 iframe 存在

javascript - JQuery insertAfter();移动下一个表格单元格

javascript - html canvas clearRect() 不起作用

javascript - svg-insertAdjacentHTML 不适用于 firefox 35 及以下版本?

html - 页脚位置固定在页面底部

javascript - 当执行这个特定的 onclick 事件时如何执行 JavaScript 函数?

javascript - 如何通过相同的值和某些属性合并/分组对象数组?

javascript - 一种知道 Angular $http 何时为 "requesting"的方法

Javascript 将对象从包含文件传递到页面