Функции (functions) — это части MAXScript, которые работают подобно программам. Например, для вычисления среднего значения массива значений можно использовать следующий фрагмент:
В приведенном фрагменте вычисляется среднее значение коллекции значений numbers. У этого кода есть один недостаток: его необходимо вводить (или копировать и вставлять) в то место сценария, где требуется вычислить среднее значение. При таком подходе сценарий "разбухает" и становится сложным для понимания.
Для решения описанной проблемы можно использовать функцию. В начале сценария определяется функция вычисления среднего значения.
Теперь в любой части сценария, где необходимо вычислить среднее значение, можно использовать следующий код:
В приведенной строке используется коллекция num, а ее усредненное значение сохраняется в переменной Ave. Теперь сценарий стал более коротким и удобочитаемым, а если вы ошиблись в определении функции, ошибку нужно исправить только в одном месте сценария, а не "рыскать" по всему сценарию в поисках неверного выражения.
В первой строке приведенного выше фрагмента кода создается новая функция с именем
Для нормальной работы функции необходимо передать ей данные, определенные переменной numbers. В теле самой функции для ссылки на полученные данные используется все та же переменная numbers, а во время вызова функции (например, average num) имя реальной переменной значения не имеет.
Очень просто создать функцию, которая использует несколько элементов данных. Например, в строке |
В следующих двух строках
создаются две переменные и их значения устанавливаются в 0. Ключевое слово local указывает, что переменные принадлежат этой функции, т.е. эти переменные недоступны в остальной части сценария. Вы можете использовать в функции и в сценарии переменные с одинаковыми именами, и при этом конфликт не возникнет. В последней строке
используются значения переменных Total и Count для вычисления среднего значения, т.е. результата вычисления функции.