Добрый день!
Будучи новичком в SCORM, мне было интересно, как Storyline 360 обрабатывает свои данные приостановки. Влияет ли это на то, как оно обрабатывает данные приостановки на основе используемой вами LMS?
У меня есть сцена, которая по завершении генерирует сертификат для учащихся. По умолчанию используется имя, которое имеет LMS, и он автоматически заполняет ввод при запуске временной шкалы.
Одним из требований для этого является то, что когда пользователь изменяет ввод на любое имя, которое он желает, он должен быть сохранен и получен при следующем посещении. Я использовал SCORM Cloud в качестве тестовой LMS. Мое наблюдение состоит в том, что для каждого повторного запуска курса он не извлекает имя, которое я ввел из последнего сеанса с помощью методов SetVar () и GetVar ().
Я нашел обходной путь, используя lmsAPI.SetDataChunk, чтобы установить имя, затем использовал lmsAPI.GetDataChunk, чтобы получить его. Он работал хорошо и хорошо, но когда он был развернут в нашей LMS, он все еще что-то извлекает, но это бред.
Это то, что я сейчас получаю, получая DataChunk:
Этот код проверяет, были ли какие-либо сохраненные имена из предыдущих сессий с помощью GetDataChunk ()
var player = GetPlayer();
var student = lmsAPI.GetStudentName();
var suspenddata = lmsAPI.GetDataChunk();
var username= player.GetVar("userName");
var displayname = "!";
if(suspenddata){
console.log("suspenddata is:"+suspenddata);
username=suspenddata;
}
if(!username){
console.log("username is null, setting to: "+student);
username=student;
}
player.SetVar("userName",username);
if(username){
displayname=" "+username+"!";
}
player.SetVar("displayName",displayname);
player.SetVar("nameInput",username);
Когда пользователь решает изменить свое имя, оно будет сохранено в переменной сюжета с помощью SetVar (), а также передано в SetDataChunk (), как показано ниже
var player = GetPlayer();
var nameinput = player.GetVar("nameInput");
var username = player.GetVar("userName");
var displayname = "!";
if(nameinput){
console.log("nameinput is:"+nameinput);
username = nameinput;
displayname=" "+username+"!";
player.SetVar("displayName",displayname);
player.SetVar("userName",nameinput);
lmsAPI.SetDataChunk(username);
}else{
console.log("nameinput is null");
}
Этот код хорошо работает, когда я развернул его в облаке SCORM, но, как я уже говорил, он получит бред при развертывании в нашей собственной LMS. Я не пробовал развертывать эту версию, где она не будет использовать DataChunk, но даже тогда переменные Storyline должны быть сохранены в данных приостановки при развертывании в SCORM Cloud, но это не так. Я нахожусь в конце моего ума, поэтому любая помощь будет оценена. Спасибо!