SCORM 2004获取和设置值

时间:2015-04-29 12:07:58

标签: javascript scorm scorm2004

我正在尝试获取并设置各种目标的完成状态。我正在努力做到这些;

str = scorm.GetValue("cmi.objectives." + i.toString() + ".completion_status");
GetValue('cmi.objectives.0.completion_status') returned '' in 0 seconds
[13:50:23.469] Checking for GetValue Error
[13:50:23.469] SCORM ERROR FOUND - Set Error State: 301 - 
The Objectives collection does not have an element at index 0, the current element count is 0.

这是SCORM Cloud的日志。我认为这可能与为目标提供ID有关。

我的目标不是在清单中设置ID,我不知道我必须这样做。所以问题是我是否需要为每个目标(清单或javascript)提供ID?

如果您认为/猜/知道问题完全不同,我们将不胜感激。

2 个答案:

答案 0 :(得分:2)

通常你可以检查 - scorm.GetValue(' cmi.objectives._count')知道你是否有任何投票目标。

如果它以2返回,那么你将有两个目标循环通过寻找你需要更新的cmi.objective.x.id。或者,如果您添加新目标,_count将为您提供打包数组中的下一个可用索引。

如果您的_count为1,则值得尝试检查completion_status等...否则您将生成与您描述的SCORM错误类似的SCORM错误。

希望有所帮助。

答案 1 :(得分:1)

要求在设置(或获取)其他值之前先设置ID - 请参阅SCORM Conformance Requirements中的REQ_72.4.2.6(第50页左右)。

在javascript中设置id是相当不错的,所以你可以很容易地使用"objective_1"作为第一个等等(虽然为了更多的未来证据,它应该是某种形式的URN - 即使那是{{1 }})。