1

我需要一些帮助来了解 Captivate 7 书签在 SCORM 2004 课程中的工作原理。默认情况下,Captivate 似乎会将您的位置标记为您访问的最后一张幻灯片,无论是课程中的第一张还是最后一张。在幻灯片 50 上重新开始课程,向后移动 20 张幻灯片然后退出将导致您在幻灯片 30 而不是幻灯片 50 上重新开始。这不是我们想要的默认功能。我们希望 Captivate 记住您访问过的最高幻灯片编号,然后在您退出并稍后继续时从那里重新启动。据我所知,在任何地方都没有允许这种行为的选项,所以我正在开发一个 HTML5 Widget,希望能解决这个问题。为此,我做了以下工作:

  • 在 JavaScript 中创建了一个 maxSlide 变量,用于跟踪访问过的最高幻灯片;
  • 在我的本地 widget.js 文件中覆盖在 scormdriver.js 中找到的以下函数,从而用我的 maxSlide 变量替换 cmi.location 变量:
  • SCORM2004_SetBookmark(strBookmark)
  • SCORM2004_CallSetValue(strElement,strValue)
  • 设置书签(strBookmark)

因此,使用控制台窗口和调试记录器在cloud.scorm.com上对此进行测试,从表面上看,我上面采取的步骤似乎是有效的。但是,如下图所示,我导航到幻灯片 11,然后返回幻灯片 1,然后退出课程。重新开始课程后,Captivate 会抓取 11 的初始书签位置,然后用 Slide_1 覆盖它,然后在调用 setValue 后几乎立即用 1 覆盖它。在之前的尝试日志中,我没有看到任何 cmi.location 值被设置为我的最高位置是 11。因此,64,000 美元的问题是 Captivate 在哪里/如何获得我最后一张幻灯片的位置 1?是否使用 cookie 来拉取这个值 1?另外,为什么用 Slide_1 覆盖第一个 cmi.location getValue 11?

来自 cloud.scorm.com 的相关调试日志:

尽管向后导航到幻灯片 1,但课程中所有位置 (cmi.location) 的第一次尝试都是 11。

尽管向后导航到幻灯片 1 并在幻灯片 1 上退出,但在课程中的第一次尝试和所有位置 (cmi.location) 都是 11。

随后的课程尝试显示返回的初始 cmi.location 值 11。 然而,Captivate 然后决定用 Slide_1 覆盖它,然后只是

随后的课程尝试显示返回的初始 cmi.location 值 11。但是,Captivate 然后决定用 Slide_1 覆盖它,然后只用“1”覆盖它。因此,我在幻灯片 1 上重新开始了课程,而不是幻灯片 11。

如何阻止加载/保存不正确的书签值?任何和所有的见解都是值得赞赏的。谢谢!

4

1 回答 1

3

我没有使用 Captivate 7,但 Captivate 之前cmi.suspend_data几乎可以跟踪所有内容。在以前版本的 Captivate 中,开发团队决定不按照预期的方式使用 SCORM 的 CMI 字段,而是将几乎所有需要的东西硬塞到cmi.suspend_data. 这为他们提供了灵活性,因为他们也支持其他跟踪系统,并且没有与 SCORM 的 CMI 模型结合。

cmi.suspend_data他们当然在 CP7 中做了一些改变,但如果他们仍然使用一些与之融合的自定义逻辑cmi.location(如果他们甚至使用cmi.location......它可能已被填充,但这并不意味着他们使用),我不会感到惊讶在他们的逻辑中)。

于 2014-02-16T01:01:46.637 回答