Процедурные пазлы (Procedures)
Процедура (она же функция) — это именованная группа пазлов, которая выполняет определенную задачу. Организуя пазлы в процедуры, вы можете сделать свои сценарии более компактными и удобными для использования.
- Создание процедур
- Вызов процедуры
- Процедуры с возвращаемым значением
- Использование пазла "if return"
- Вызов процедур из «Ява Скрипт»
Создание процедур
Новая процедура может быть создана путем перетаскивания пазла определения процедуры из панели инструментов:

Созданный процедурный пазл может быть переименован, и заполнен другими пазлами для выполнения какой-либо задачи:

Вызов процедуры
Чтобы иметь возможность запустить (вызвать) процедуру, перетащите соответствующий пазл из панели инструментов:

Процедура может быть запущена несколько раз и из нескольких мест сценария Пазлов. Это может позволить повторно использовать пазлы, а не копировать аналогичный набор пазлов несколько раз. Например, анимация может запускаться всякий раз, когда пользователь нажимает на сам объект или кнопку HTML (таким образом обеспечивается дублирование элементов управления).

Процедура может иметь дополнительные вводные параметры (они же аргументы). Чтобы добавить параметр в процедуру, нажмите на значок шестеренки и перетащите пазл параметров из панели инструментов слева, вставив его в пазл вводных параметров:

Чтобы иметь возможность использовать вводный параметр внутри процедуры, вытащите соответствующий пазл переменной "get", созданный автоматически в "Variables":

Эта переменная может быть использована в качестве замены фактических данных (например, имен объектов) для выполнения какой-либо задачи.

При запуске процедуры с помощью вводных параметров укажите данные для каждого триггерного пазла.

Вы можете перейти от триггерного пазла к соответствующему пазлу определения процедуры с помощью меню правой кнопки мыши:

Процедуры могут также вызываться с помощью пазлов get procedure и call procedure. Этот способ позволяет получить ссылку на процедуру в виде переменной, либо в виде параметра, передаваемого в другую процедуру, позволяя делать вызов когда это требуется.
Процедуры с возвращаемым значением
Процедура может выдавать своему пользователю вычисленное значение (оно же возвращаемое значение). Чтобы создать такую процедуру, из панели инструментов перетащите вариант процедурного пазла со слотом возврата.

Использование пазла "if return"
Процедура может вернуть значение при некотором условии до того, как все внутренние пазлы будут обработаны. В этом случае процедура преждевременно прекращает выполнение.

Вызов процедур из «Ява Скрипт»
Чтобы задействовать процедурные пазлы из внешнего кода «Ява Скрипт», используйте аргумент puzzles
функции runCode()
главного .js-файла вашего приложения, либо используйте переменную puzzles
пазла exec script:
puzzles.procedures['myProcedure']();
Проблема с пазлами?
Обращайтесь за помощью на наш форум!