Как преобразовать в Storyline пустое значение числового ввода в 0 (ноль).

Если у вас хотя бы раз стояла задача разработать в Storyline калькулятор, в рамках которого необходимо посчитать что бы то ни было на основе введённых пользователем значений, то вы наверняка сталкивались с такой проблемой: если пользователь вводит какое-то значение в поле с числовым вводом (Numeric Entry), а потом удаляет его и не вводит в поле ничего, ваш калькулятор ломается, а итоговая переменная принимает значение NaN (not a number — «нечисло»).

Пример такого калькулятора:

Click here to edit the advanced iframe block.

powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

При том что в Storyline можно проверять поля для текстового ввода на то, введено в них что-то, или нет, числовые поля так, к сожалению, не проверить.

В такой ситуации нам на помощь придёт JavaScript.

var player = GetPlayer();

var replaceValue; // создаём пустую переменную

replaceValue = player.GetVar("a"); // передаём ей значение из Numeric Entry в Storyline (вместо "a" подставьте название переменной, которая принимает значение при вводе в поле для числового ввода)

replaceValue = parseInt(replaceValue); // пытаемся преобразовать переменную в число (целочисленное значение), но там видимо undefined, поэтому она становится NaN

if (isNaN(replaceValue)) { // если переменная становится NaN
    replaceValue = 0; // преобразуем её в 0
  }

player.SetVar("a", replaceValue); // подсовываем значение в Storyline (вместо "a" подставьте название переменной, которая принимает значение при вводе в поле для числового ввода)

Этот код необходимо вставить в триггер Execute JavaScript и повесить либо на кнопку, производящую операции с переменными (до самих операций), либо на поле ввода (после присвоения переменной значения из поля ввода).

Вот пример калькулятора, где при удалении значения в поле ввода калькулятор продолжает работать, а удалённое значение меняется на 0.

Click here to edit the advanced iframe block.

powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

Внимание! При предпросмотре вы ничего не увидите кроме ошибки, что JavaScript не работает в режиме Preview. Поэтому вам необходимо опубликовать курс и запустить его в браузере.

Итак, с помощью пары строчек JavaScript мы решили довольно распространённую и неприятную проблему. В комментариях пишите, встречалась ли такая ситуация у вас, и как вы её решили.

Если у вас возникают трудности с реализацией функционала, описанного в этой статье, не стесняйтесь, пишите комментарии.

Читайте также:

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

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

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