J'essaie de faire fonctionner SCORM 1.2 avec notre projet Unity 5 WebGL. Je pensais introduire le code SCORM graduellement; Voici le code que je voudrais « traduire » il travaille dans l'unité:Conversion de SCORM.js pour travailler avec Unity 5
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
};
Lorsque j'utilise ce code, tel qu'il est, on me dit que par l'unité 'Utils' is not a member of 'Boo.Lang.Hash'
OK. On m'a dit que je devrais utiliser Hashtables au lieu de simples oljavascript ojects. Alors, voici ce que j'ai jusqu'à présent:
var vault:Hashtable = new Hashtable(); //vault 'namespace' helps ensure no conflicts with possible other "SCORM" variables
vault['UTILS'] = new Hashtable(); //For holding UTILS functions
vault['debug'] = new Hashtable(); //Enable (true) or disable (false) for debug mode
vault['debug']['isActive'] = true;
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
};
Mais maintenant, l'unité jette l'erreur suivante:
Type 'Object' does not support slicing
.... à la ligne vault['debug']['isActive'] = true;
. Donc, comment ajouter une propriété à une Hashtable imbriquée dans une variable?
"Javascript" de Unity n'est pas en fait du JavaScript; c'est en fait la compilation croisée à Boo, qui est ensuite exécutée sur .NET CLR modifié par Unity. Essayer de faire fonctionner SCORM dans Unity va être très, très dur. Il serait probablement plus facile d'exécuter séparément SCORM et Unity sur le navigateur, puis de les faire communiquer via des API. – rutter
Cette page: https://docs.unity3d.com/Manual/webgl-interactingwithbrowserscripting.html est très instructive mais j'obtiens une erreur 'EntryPointNotFoundException'. La recherche continue ... – moosefetcher
Je ne travaille pas avec Unity, mais je vais prendre un moment pour vous rappeler que la bibliothèque n'est pas nommée SCORM.js, c'est le Piperks SCORM Wrapper, qui a été renommé par quelqu'un dans votre entreprise. https://github.com/pipwerks/scorm-api-wrapper – pipwerks