Articulate 360 Storyline Текстовые переменные Javascript Выполнение

Вопрос или проблема

Я создаю триггер слайдов 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

Ошибка о том, что скрипт не определён, может возникать по нескольким причинам. Давайте рассмотрим возможные аспекты ошибки и предложим решения.

Причины проблемы:

  1. Неправильное имя функции или её пропуск: Убедитесь, что вы действительно вызываете функцию setTexts с правильным именем. Если функция не была правильно определена до её вызова, получим эту ошибку.

  2. Неправильное указание слайдов: Убедитесь, что передаваемые параметры для функции соответствуют существующим индексам массивов текста. В вашем массиве correctTexts всего два элемента, поэтому передача номера слайда больше 2 приведет к ошибке.

  3. Ошибка в использовании переменной 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 или официальной документации.

Оцените материал
Добавить комментарий

Капча загружается...