我在SCORM Cloud推出了SCORM 2004(第3版)软件包。我通过了80%的考试,但结果不存储。我附加沙盒注册状态结果。为什么SCORM 2004第3版的SCORM云中没有存储通过的分数?
Satisfied: true
**Completed: unknown**
Progress Status: true
Attempts: 1
Suspended: true
Activity Objective #1
Id:
Measure Status: false
**Normalized Measure: unknown**
Progress Measure: true
Satisfied Status: true
Runtime Data
**cmi.completion_status: unknown**
cmi.credit: Credit
cmi.entry: Resume
cmi.exit: Suspend
cmi.learner_preference
cmi.learner_preference.audio_level: 1
cmi.learner_preference.language:
cmi.learner_preference.delivery_speed: 1
cmi.learner_preference.audio_captioning: 0
**cmi.location: 2_8
cmi.mode: Normal
cmi.progress_measure:
cmi.score_scaled:
cmi.score_raw: 80**
cmi.score_min:
cmi.score_max:
**cmi.total_time: 0000:00:28**
Total Time Tracked by SCORM Engine: 0000:00:29.12
cmi.success_status: Passed
cmi.suspend_data:
Static Data
cmi.completion_threshold:
cmi.launch_data:
cmi.learner_id: [email protected]
cmi.learner_name: Test Test
cmi.max_time_allowed:
cmi.scaled_passing_score:
cmi.time_limit_action: Undefined
当我在SCORM 1.2版本相同的课程试过,我可以看到SCORM云中的所有结果。我不知道,这是什么问题。
在这里,我附上剧本也
function getResults(correct_count, answers_key, total, grade) {
var form_result = $('form').serializeArray();
$.each(form_result, function(i, val) {
if(answers_key[i] == val.value) {
correct_count += 1;
}
});
var score = Math.round(parseFloat(parseFloat(correct_count, 10) * 100)/ parseFloat(total, 10));
setScore(score);
if(score >= grade) {
setPassFail('passed');
} else {
setPassFail('failed');
}
}
function setPassFail(sPassFail) {
/* see if this SCORM 2004 */
if (_sAPI == "API_1484_11") {
/* it is SCORM 2004, set the success status */
scormSetValue("cmi.success_status", sPassFail+"");
} else if (_sAPI == "API") {
/* it is SCORM 1.2,set the completion status */
scormSetValue("cmi.core.lesson_status", sPassFail+"");
}
}
function setScore(sScore) { /* see if this SCORM 2004 */ if (_sAPI == "API_1484_11") { /* it is SCORM 2004, set the scaled score data */ // scormSetValue("cmi.score.scaled", sScore+""); scormSetValue("cmi.score.raw", sScore+""); scormCommit(); } else if (_sAPI == "API") { /* it is SCORM 1.2, set the min and max scores
*/ scormSetValue("cmi.core.score.raw", sScore+""); } }
function scormSetValue(name, value) {
var API = getAPI();
if (API == null)
return "true";
/* call the correct SCORM function */
if (_sAPI == "API")
var result = API.LMSSetValue(name, value);
else
var result = API.SetValue(name, value);
return result;
}
function scormCommit() {
var API = getAPI();
if (API == null)
return "false";
/* call the correct SCORM function */
if (_sAPI == "API")
var result = API.LMSCommit("");
else
var result = API.Commit("");
return result;
}
请帮助我,什么是错误/问题是那里的代码。
谢谢!
嗨, 我做了所有更改,并在SCORM Cloud中获得了结果。但是我没有拿到该课程的总分。有什么我想补充的吗?
我在setScroe之后添加了API.Commit('')。但是,我无法获得结果数据。我错过了什么?还有其他更改吗? –
我也有一个小书签,可以帮助您在LMS中获取SCO的当前运行时状态。如果有什么事情你不知道的话,它也可能会拿起一些LMS神器。 https://www.cybercussion.com/bookmarklets/SCORM/。这至少会让你看到正在运行的SCORM版本,或者同时运行多个SCORM版本(这实际上发生在野外)。让我知道这是否有帮助。 – Mark
谢谢你的帮助,马克! –