以前从来没有做过SCORM的课件,自从认识这个SCORM来,一直是做LMS罢了.
只是BOSS这些天强烈建议我学会做一个内容包.算一下好象快三天了.不过今天总算是把它拿下来了!
其实早就应该发现这个问题的.我一直没在SCO中加入对应的JS(只前些天,我也无心做这个东西.可恶!).
<
SCRIPT LANGUAGE
=
JAVASCRIPT SRC
=
"
util/APIWrapper.js
"
></
SCRIPT
>
<
SCRIPT LANGUAGE
=
JAVASCRIPT SRC
=
"
util/SCOFunctions.js
"
></
SCRIPT
>
<
SCRIPT language
=
"
javascript
"
>
loadPage();
var
studentName
=
"
!
"
;
var
lmsStudentName
=
doLMSGetValue(
"
cmi.core.student_name
"
);
if
( lmsStudentName
!=
""
)
{
studentName
=
"
"
+
lmsStudentName
+
"
!
"
;
}
document.write(studentName);
doContinue('completed');
</
SCRIPT
>
好象发现所以SCO页面中的都有这些始化的代码(SCORM1.2).
我摸着这个API一直往下走!在一个叫cmidatamodel_1.1.jar的包下总算是找到了一点眉目.接着一阵狂反编译...
只是最后的结果令我有些郁闷,不知道是不是自己搞错了.getvalue的方法对了student_name 好象总是空的!
主要部分代码如下:
student_name = new Element("", "checkString255", "NULL", false, true, true);
.
String s1 = new String("");
Class class1 = obj.getClass();
try
{
Field field = class1.getField(s);
Element element = (Element)field.get(obj);
if(element.isReadable())
{
s1 = element.getValue();
初步判断,class1就是CMICore.java类了.student_name 是在其中构造函数中初始化的!
element 代码如下:
public Element(String s, String s1, String s2, boolean flag, boolean flag1, boolean flag2)
{
value = s;
type = s1;
vocabularyType = s2;
writeable = flag;
readable = flag1;
if(s.equalsIgnoreCase(""))
initialized = false;
else
initialized = true;
mandatory = flag2;
implemented = true;
}
public String getValue()
{
return value;
}
没有输出的跟踪过!只是在代码上看了一趟!它完全没有跟DB发生交互(废话,人家的东西都放到包里了,怎么可能与DB发生关系!),也许这本身就是1.2版本的一个特性吧!再说API本来就可以人为定义(我以前处理的时候可不是这样做的).当然除此外有些地方与DB交互了......
虽然对这一点不是太了解,但BOSS交代的总算是完成了,下午还写了个说明文档(如何做出来的). 狂晕!越写越感觉自己SB!
刚刚,同事上来说(8楼,除了上WC我简直不想到任何地方去.)外面的要下雨了! 正打算闪人,可是还是很负责任地跑到窗户往外看了一眼(理智战胜情感了).保守估计,暂时不会下.... 又是一阵开机!因为我想记一些东西....
实在是乱七八糟地在写.所以也不敢发到首页去!不然又要被BS....