SCORMモジュールの記録について

SCORMモジュールの記録について

- Makoto Maeda の投稿
返信数: 2

Webページのunloadイベントで
  API.LMSSetValue("cmi.core.session_time",hh + ":" + mm + ":" + ss);
  API.LMSCommit("");
  API.LMSFinish("");
のように実行していますが、現在のSCOではなく、遷移先のSCOとしてデータベースに
記録されるため状態遷移がうまく動作しません。悲しい
この問題について何か情報はありますか?

Makoto Maeda への返信

Re: SCORMモジュールの記録について

- Makoto Maeda の投稿

onbeforeunloadイベントで処理すれば、状態遷移はうまく動作しました。

しかし、テストで100点であっても"passed"になりません。
cmi.core.score.raw には 100
cmi.student_data.mastery_score には 70
がセットされていますが、

API.LMSSetValue("cmi.core.lesson_status","passed");
を実行しても、データベースをみると

cmi.core.lesson_statusfailed

となります。ヘトヘト

Makoto Maeda への返信

Re: SCORMモジュールの記録について

- Makoto Maeda の投稿

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)) {