2016-09-08 6 views
0

以前のeラーニング「エンジン」ではSCORMを使用していましたが、私たちのマネージドラーニング環境(MLE)の要素、つまりe - 学習モジュール。実行時にSCORM 1.2との「対話」の登録と取得

、私たちはSCORM接続を設定するために、次のコードを実行します。

var vault = {};        //vault 'namespace' helps ensure no conflicts with possible other "SCORM" variables 
vault.UTILS = {};       //For holding UTILS functions 
vault.debug = { isActive: true };     //Enable (true) or disable (false) for debug mode 

vault.SCORM = {        //Define the SCORM object 
    version: null,        //Store SCORM version. 
    handleCompletionStatus: true,    //Whether or not the wrapper should automatically handle the initial completion status 
    handleExitMode: true,      //Whether or not the wrapper should automatically handle the exit mode 
    API:{handle: null, isFound: false},    //Create API child object 
    connection: { isActive: false },    //Create connection child object 
    data: { completionStatus: null, exitStatus: null}, //Create data child object 
    debug:{}          //Create debug child object 
}; 

vault.SCORM.API.find('win'); 
      vault.SCORM.connection.initialize(); 
      if (vault.SCORM.data.get("cmi.core.lesson_status")=="not attempted") { 

       vault.SCORM.data.set("cmi.core.lesson_status" , "incomplete"); 

       vault.SCORM.data.save(); 

      } 

はSCORM.jsファイルでより多くの機能がありますが、ポイントは、このすべての作品です。モジュールがMLEにロードされると、次のコードがコースの完了をトリガーします。

vault.SCORM.data.set("cmi.core.lesson_status" , "completed"); 

したがって、完成可能なコンポーネントをSCORMに登録するにはどうすればよいですか? (私たちの 'エンジン'のコンポーネントは、通常 '要素'と呼ばれるjQueryオブジェクトです)。次のようなことはありますか、またはSCORMでのカスタム呼び出しは不可能ですか?

vault.SCORM.data.set("cmi.interactions.n."+element.componentId() , "incomplete"); 

しかし、その後、次のように私は、IDを指定することで、相互作用を登録した場合...

vault.SCORM.data.set("cmi.interactions.n.id", element.componentId()); 

...どのように私は、そのコンポーネントに「完了」を設定するか、またはアクセスできますか?

私は様々なサイトから投稿とpdfのスペックを読んできましたが、その説明はせいぜい疎です。

ここにはSCORMフォロワーはあまりいないことは知っていますが、情報があればそれを聞いてみたいと思います。

答えて

2

FWIWは、私のpipwerks SCORMラッパーですが、変数pipwerksncaltに変更されています。

http://pipwerks.comにラッパーを使用する方法に関するドキュメントがあります(検索フィールドに「scorm wrapper」を検索)。元のソースコードはhttps://github.com/pipwerks/scorm-api-wrapperにあります。

サンプルコードでは、使用する方法とは異なる方法でラッパーを使用しています。たとえば、この:

ncalt.SCORM.set("cmi.core.lesson_status" , "completed"); 

あなたがそうのように、参照変数を経由しても、それをさらに短縮することができます:

ncalt.SCORM.data.set("cmi.core.lesson_status" , "completed"); 

は(dataは必要な内部ヘルパーとではありません)、このする必要があります

var scorm = ncalt.SCORM; 
scorm.set("cmi.core.lesson_status" , "completed"); 
scorm.save(); 
scorm.get("cmi.core.lesson_status"); //returns "completed" 

「コンポーネント」については、SCORMのcmi.interactionsモデルを使用する場合は、正しい構文を使用していることを確認してください。 SCORMの文書(cmi.interactions.n.id)の "n"は数字を表すためのものであり、リテラル "n"ではありません。

scorm.set("cmi.interactions.0.id", "myfirstinteraction"); 
scorm.save(); 

その相互作用からデータを取得するには、n個の代わりに番号を指定する必要があります。

scorm.get("cmi.interactions.0.id"); //returns "myfirstinteraction" 

CMIデータモデルがcmi.interactionsは「状態」フィールドを提供していません。 cmi.objectivesを使用する必要があります。

scorm.set("cmi.objectives.0.status", "completed"); 
scorm.save(); 
scorm.get("cmi.objectives.0.status"); // returns "completed" 

(SCORMで利用できるように)CMIデータモデルは、ここで綴られている:あなたの返信用http://scorm.com/scorm-explained/technical-scorm/run-time/run-time-reference/

+0

感謝を。私は 'n'が数字であることを意図しているのだろうかと思っていたが、私が読んだ説明はあいまいだった。あなたは明らかに相互作用_カウントを得ることができます。一度設定したら、特定のやり取りをどのようにしなければならないのかはわかりません。遭遇したそれぞれのインタラクションで「n」が増加する場合、たとえば、以前に現在のインタラクションで現在のページにユーザーがアクセスした場合、どのように設定できますか? – moosefetcher

+0

基本的には、IDで相互作用を取得する方法を知りたいと思います。インタラクションのIDに関連付けられた 'n'値を取得する方法はありますか?もしあなたが 'n'の価値を持っていれば、明らかにその相互作用の他のプロパティにアクセスすることができます。しかし、あなたが既に 'n'の値を知る必要があるならば、相互作用にIDを置くことは、ちょっと意味がないように思えます... – moosefetcher

+0

私は、格納された目的を指定する方法についての説明のためにこの答えを受け入れます。私はまだそれを働かせていませんが、私はcmi.objectivesで表示されるインデックスを持つ任意のIDを格納するシステムを開発することで、IDで以前に格納された目的を取得できるはずです。再度、感謝します。 – moosefetcher

関連する問題