Webページのunloadイベントで
API.LMSSetValue("cmi.core.session_time",hh + ":" + mm + ":" + ss);
API.LMSCommit("");
API.LMSFinish("");
のように実行していますが、現在のSCOではなく、遷移先のSCOとしてデータベースに
記録されるため状態遷移がうまく動作しません。
この問題について何か情報はありますか?
mod\scorm\datamodels\scorm1_2.js.phpをデバックしたところ、
L.403あたり
if (cmi.core.score.raw >= cmi.student_data.mastery_score) {
cmi.core.lesson_status = 'passed';
} else {
cmi.core.lesson_status = 'failed';
}
で、比較結果が常に「false」になることがわかりました。
mastery_scoreの型が文字列型であることが原因のようです。
下記のように変更すると直りました。
if (cmi.core.score.raw >= parseInt(cmi.student_data.mastery_score)) {