Рецепты JavaScript для Articulate Storyline

JavaScript – это язык программирования, который на данный момент используется очень широко. Он используется в миллионах сайтов и веб-приложений. Не исключение и курсы, разрабатываемые в Articulate Storyline. Если вы откроете папку с экспортированным курсом, то обнаружите в ней помимо всего прочего файлы с раширением *.js. Это файлы со скриптами. Кроме того, язык JavaScript очень полезен как средство расширения возможностей Articulate Storyline. К примеру, с помощью встроенных средств Articulate Storyline вы не сможете вывести на экран текущую дату и время или напечатать сертификат о прохождении курса (только результаты прохождения теста) или задание. Однако всё это и многое другое вы сможете сделать с помощью JavaScript.

Чтобы добавить на слайд JavaScript, создайте новый триггер и выберите в списке Execute JavaScript. Вы не сможете увидеть, как работает код JavaScript непосредственно в предпросмотре самой программы – придётся опубликовать курс.

Триггеры JavaScript поддерживаются при публикации курсов в HTML5 и Flash. Однако, JavaScript не поддерживается мобильным приложением Articulate Mobile Player.

Для работы с созданными в Articulate Storyline переменными, используйте методы:

  • player.GetVar – для получения значения переменных, созданных в текущем курсе;
  • player.SetVar – для изменения значения переменных, созданных в текущем курсе.

Иными словами, вы можете вытаскивать значение переменных курса с помощью player.GetVar, присваивать эти значения переменным в рамках кода JavaScript, обрабатывать их, а потом полученные значения присваивать переменным в курсе с помощью player.SetVar.

Не включайте <script type=»text/javascript»> в ваш код.

Каждый триггер JavaScript может содержать до 32,767 символов.

Нельзя вызвать JavaScript из одного триггера в другом.

Вы можете добавить весь код JavaScript в отдельный файл (.js), и расположить его в папке story_content опубликованного курса, затем потребуется добавить одну строчку кода в файл story_html5.html и/или story_flash.html.

<script LANGUAGE="JavaScript1.2" SRC="story_content/MyJavaScriptFunctions.js" TYPE="text/javascript"></script>

Рецепты кода

Ниже представлены рецепты кода для Articulate Storyline 3 и 360.

Присваиваем переменной значение текущей даты

var currentTime = new Date()
var month = currentTime.getMonth() + 1
var day = currentTime.getDate()
var year = currentTime.getFullYear()
var dateString=day + "." + month + "." + year
var player = GetPlayer();
player.SetVar("SystemDate",dateString);

Всплывающее окно (только текст)

alert("Your message here...");

Всплывающее окно (текст и переменная из Storyline)

var player = GetPlayer();
alert("Welcome back, " + player.GetVar("FirstName") + ".");

Напечатать текущий слайд (только HTML5)

window.print();

Если использовать только этот код, вы напечатаете слайд полностью и плеер Storyline.

Если хотите распечатать только содержимое слайда без плеера, используйте более сложный код:

if (document.location.href.indexOf('html5') < 0) {
GetPlayer().printSlide()
} else {
if(!window.hasPrintStyle){
window.hasPrintStyle = true;
var css = "@media print {div.controls.grid-row.inflexible,div.area-secondary.cs-left.inflexible,header.header-primary.centered-title.extended-height,div.presentation-wrapper:after {display:none !important; visibility:hidden !important;}}";
head = document.head || document.getElementsByTagName('head')[0];
style = document.createElement('style');
style.type = 'text/css';
if (style.styleSheet){
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
head.appendChild(style);
}
window.print();
}

Создать новое сообщение электронной почты

var email="yourAddress@email.com";
var subject="subject line";
var body_start="How you want to begin your body.";
var mailto_link='mailto:'+email+'?subject='+subject+'&body='+body_start;
win=window.open(mailto_link,'emailWin');

Автоматическая прокрутка веб-страницы до нужных координат

window.scroll(0,150); // горизонтальные и вертикальные координаты

Автоматическая прокрутка веб-страницы относительно текущей позиции

window.scrollBy(0,150); // сколько пикселей прибавить к текущей позиции

Поменять цвет фона за пределами плеера

parent.document.body.style.backgroundColor = "#990000";

Поменять фоновое изображение за пределами плеера

Расположите файл image.jpg в корневой папке опубликованного курса и добавьте следующий код:

parent.document.body.style.backgroundImage = "url('image.jpg')";
parent.document.body.style.backgroundSize = "cover";
parent.document.body.style.backgroundRepeat = "no-repeat";

Генератор случайных чисел

В этом примере генерируется случайное число от 1 до 10.

var randomnumber = Math.floor((Math.random()*10)+1);
var player = GetPlayer();
player.SetVar("randnum",randomnumber);


Итак, с помощью JavaScript мы можем добиться гораздо более широкого функционала Articulate Storyline. Перечисленные выше инструменты – это только малая часть того, что можно получить, если выйти за рамки стандартного функционала программы. Однако необходимо помнить, что время от времени разработчики веб-браузеров меняют политики безопасности и могут, к примеру, запретить выполнение скриптов в локальном режиме (такое уже случалось с Google Chrome). В такой ситуации необходимо использовать другой браузер или выгружать курс в LMS. Кроме того, отнюдь не всегда стоит стремиться заменить стандартный функционал скриптами (фанаты такого подхода тоже имеются), поскольку в случае ошибок или некорректной работы, вызванной JavaScript, Articulate отказывается оказывать помощь (их можно понять).

В статье использовались примеры из статьи «Storyline 3: JavaScript Best Practices and Examples» (https://articulate.com/support/article/Storyline-3-JavaScript-Best-Practices-and-Examples)

Вам может также понравиться...

комментария 3

  1. Светлана:

    Добрый день! А можно ли в Articulate Storyline 2 распечатать содержимое слайда (без плеера) и создать новое сообщение электронной почты ? Какой JS для этого используется?

  2. Олег Буйлов:

    Мало интересных кейсов 🙂

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.