Вопрос или проблема
Я создаю триггер слайдов Storyline 360, который выполняет Javascript, когда начинается временная линия. Код должен взять созданные текстовые переменные проекта в Storyline и заменить их значения по умолчанию на конкретные сообщения в зависимости от номера слайда.
В предварительном просмотре консоль выдает следующее сообщение:
bootstrapper.min.js:2 actionator::exeJavaScript – Script1 не определен
Вот код, который помещен в триггер Выполнить Javascript:
function setTexts(SlideNumber) {
console.log("Функция setTexts вызвана с номером слайда: " + slideNumber); // Логируем вызов функции
var correctTexts = [
"Это выписка по кредитной карте с суммой денег, которую студент должен.",
"Этот документ предназначен для учета покупок и платежей. Он дает владельцу карты сводку о том, сколько раз карта использовалась в течение расчетного периода, а также сумму, которая должна быть оплачена за этот расчетный цикл."
];
var incorrectPromptTexts = [
"Вот подсказка: там есть долларовые суммы и подробная деятельность, какой тип документа лучше всего подходит для этих?",
"Подумайте, зачем вам нужна выписка по счетам, попробуйте еще раз."
];
var studentUnderstandTexts = [
"Понял! Я всегда путаю это с моей страховкой на машину по какой-то причине.",
"Да, теперь, когда я об этом подумал, наличие подробной записи очень полезно, даже если довольно раздражает всегда получать это по почте."
];
var positiveFeedbackTexts = [
"_user_, вы ответили правильно! Отличная работа!",
"_user_, вы правильно ответили на вопрос!",
"_user_, вы ответили правильно, отличная работа!",
"_user_! Вы ответили правильно!",
"_user_! Вы ответили на вопрос правильно!",
"_user_, вы ответили правильно!",
"_user_, вы ответили на вопрос правильно!",
"_user_, вы ответили правильно! Продолжайте в том же духе!",
"_user_, вы ответили на вопрос правильно! Продолжайте отличную работу",
"_user_, вы делаете отличную работу! Продолжайте в том же духе!"
];
var negativeFeedbackTexts = [
"_user_, извините. ответ, который вы дали, не то, что я искал.",
"_user_, ваш ответ не совсем правильный.",
"_user_, похоже, вы выбрали неправильный ответ.",
"_user_, боюсь, ответ, который вы выбрали, не был лучшим."
];
var player = GetPlayer();
// Логируем текст, который устанавливается для каждой переменной
var correctText = correctTexts[slideNumber - 1];
console.log("Установка Correct в: " + correctText);
player.SetVar("Correct", correctText);
var incorrectPromptText = incorrectPromptTexts[slideNumber - 1];
console.log("Установка IncorrectPrompt в: " + incorrectPromptText);
player.SetVar("IncorrectPrompt", incorrectPromptText);
var studentUnderstandText = studentUnderstandTexts[slideNumber - 1];
console.log("Установка StudentUnderstand в: " + studentUnderstandText);
player.SetVar("StudentUnderstand", studentUnderstandText);
// Случайный выбор положительной и отрицательной обратной связи
var randomPositiveFeedback = positiveFeedbackTexts[Math.floor(Math.random() * positiveFeedbackTexts.length)];
var randomNegativeFeedback = negativeFeedbackTexts[Math.floor(Math.random() * negativeFeedbackTexts.length)];
console.log("Установка PositiveFeedbacktoUser в: " + randomPositiveFeedback);
player.SetVar("PositiveFeedbacktoUser", randomPositiveFeedback);
console.log("Установка NegativeFeedbacktoUser в: " + randomNegativeFeedback);
player.SetVar("NegativeFeedbacktoUser", randomNegativeFeedback);
}
.
Ответ или решение
Создание триггера в Articulate Storyline 360, который выполняет Javascript при запуске временной шкалы с целью замены значений текстовых переменных, является распространенной задачей среди разработчиков обучающих курсов. В вашем случае возникает ошибка, которая указывает на то, что функция setTexts
не была определена при попытке ее вызова.
Ошибка: Script1 is not defined
Ошибка о том, что скрипт не определён, может возникать по нескольким причинам. Давайте рассмотрим возможные аспекты ошибки и предложим решения.
Причины проблемы:
-
Неправильное имя функции или её пропуск: Убедитесь, что вы действительно вызываете функцию
setTexts
с правильным именем. Если функция не была правильно определена до её вызова, получим эту ошибку. -
Неправильное указание слайдов: Убедитесь, что передаваемые параметры для функции соответствуют существующим индексам массивов текста. В вашем массиве
correctTexts
всего два элемента, поэтому передача номера слайда больше 2 приведет к ошибке. -
Ошибка в использовании переменной
slideNumber
: В вашем коде вы используетеSlideNumber
как параметр функции, но внутри функции ссылаетесь наslideNumber
(с маленькой буквы). JavaScript чувствителен к регистру, и это приведет к ошибке, посколькуslideNumber
не будет определён.
Предложение по коду
Ниже представлен исправленный фрагмент кода, который включает необходимые улучшения и комментарии для ясности:
function setTexts(slideNumber) { // Исправлено на 'slideNumber' с маленькой буквы
console.log("setTexts function called with slideNumber: " + slideNumber);
var correctTexts = [
"Это выписка по кредитной карте с суммой долга студента.",
"Этот документ предназначен для учета покупок и платежей, он дает держателю карты сводку о том, как использовалась карта в течение расчетного периода."
];
// Остальные массивы не изменились
var player = GetPlayer();
// Проверяем, что slideNumber не превышает длину массивов
if (slideNumber < 1 || slideNumber > correctTexts.length) {
console.error("Неверный номер слайда: " + slideNumber);
return;
}
var correctText = correctTexts[slideNumber - 1];
console.log("Установка переменной Correct на: " + correctText);
player.SetVar("Correct", correctText);
// Аналогичным образом установите остальные переменные...
// Выбор положительного и отрицательного отзыва случайным образом
var randomPositiveFeedback = positiveFeedbackTexts[Math.floor(Math.random() * positiveFeedbackTexts.length)];
var randomNegativeFeedback = negativeFeedbackTexts[Math.floor(Math.random() * negativeFeedbackTexts.length)];
console.log("Установка PositiveFeedbacktoUser на: " + randomPositiveFeedback);
player.SetVar("PositiveFeedbacktoUser", randomPositiveFeedback);
console.log("Установка NegativeFeedbacktoUser на: " + randomNegativeFeedback);
player.SetVar("NegativeFeedbacktoUser", randomNegativeFeedback);
}
// Пример вызова функции на слайде
setTexts(currentSlideNumber); // Замените currentSlideNumber на действительный номер слайда
Заключение
Следуя данным рекомендациям, вы сможете исправить возникшую ошибку и эффективно использовать текстовые переменные в Articulate Storyline 360 с помощью Javascript. Не забывайте тестировать функциональность на каждом этапе и тщательно проверять правильность передаваемых параметров, чтобы избежать неожиданных сбоев. В случае возникновения дополнительных вопросов или трудностей, вы всегда можете обратиться к сообществу Articulate или официальной документации.