以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 IMS/SCORM/E-learning 』  (http://bbs.xml.org.cn/list.asp?boardid=9)
----  【梁政良】怎样设计一个符合SCORM的LMS?(二)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=9&rootid=&id=26864)


--  作者:echo6459
--  发布时间:2/1/2006 3:04:00 PM

--  【梁政良】怎样设计一个符合SCORM的LMS?(二)
如果你已经下载了 ADL 所释出的 Sample Run-Time nvironment,而且决定使用 Java 或 .Net 来实做你平台的 SCORM 部份,你可能要花不少时间来读懂它里面的三十多支 Java 程序,或者至少该知道这些程序该怎么用。

  几乎所有的 .java 程序,都为了存取 XML 而写。如果你已经熟读SCORM RTE 的 Metadata,从档名你就知道,几乎是一个 Metadata 就用一支 java 来 take care。从事 java 程序开发的朋友都知道,java 需要自带 XML 的函式库,它无法直接使用 OS 所提供的 XML API (如果有的话,例如 windows)。而这个函式库又超大,因此 java 在 XML 这方面有点先天失利,不过这并非指 java 不适合开发 SCORM,而是我 心目中有比用 java 更适合的对象-就是我在『技术』篇所提到的 SCORM 开发必备技能之二 - Jscript。

  请注意我写的是 Jscript,而非 Javascript。这是 Microsoft 版本的 Javascript,它是一个遵循 ECMA-Script 标准的 script language ,除了在 Microsoft IE 底下有完整的 XMLDOM 可用,即使客户端使用 Mozilla/Netscape 等浏览器,Jscript 也可以用标准的 XMLDOM 来实作 SCORM Adapter。

  在讲到实作 Adapter 之前,我们先来看看 ADL 的 Sample 里的两支重要的 Jscript : APIWrapper.js 与 SCOFunctions.js。

  "APIWrapper.js" 是提供教材制作者,一个呼叫 Adapter API 的接口。教材制作者把这支程序与 Asset 合起来就构成一个简单的 SCO,只要在教材被 launch 时,使用它的 findAPI() 去寻找 Adapter API,找到后就会有一个 API 的对象可用,而这个对象会 mapping 到 LMS 所实作的 Adapter 上,因此它就会有 RTE 所规范的八个方法 (method),开始供你的教材使用了。

  "SCOFunctions.js" 则是提供一些函式,供 Adapter 或者 Content 来使用。这些函式大部份是有关 SCO 在激活与结束时,一些状态属性的 Metadata 侦测与设定。比如 "cmi.core.exit" 侦测这个 SCO 是正常结束或异常结束;"cmi.core.lesson_mode" 是一般阅读或是参观者浏览;还有 "cmi.core.session_time" 是记录这个 SCO 从开始到结束的时间。哦!对了,SCORM 有个资料格式是 CMITimespan,这个是『时间长度』。它精确到小数点后两位,但 Jscript 并没有这样的处理函式 (不知 Java 有没有),所以必须自己写个函式来处理这样的时间加减。这支程序有三个函式:startTimer()、computeTime()、convertTotalSeconds() 可以帮你计算 session_time。它已经被写在 loadPage() 函式中了,所以你只要在 SCO 激活时,在 findAPI() 找到 API 后,用 loadPage() 来呼叫 Adapter 的 LMSInitialize(),再使用 unloadPage() 呼叫 LMSCommit() 与 LMSFinish(),你就完成一个 SCO 的最基本要求啰。


--  作者:foxu
--  发布时间:2/25/2006 6:47:00 PM

--  
期待下一篇!```
楼主加油
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
18,187.990ms