Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
max_Script синтаксис.doc
Скачиваний:
9
Добавлен:
01.05.2025
Размер:
196 Кб
Скачать
☆

События

Вызов события (event) происходит, когда пользователь взаимодействует с элементом интерфейса, для которого данное событие определено:

on <item_name> <event_name> [<argument>] do <expr>, где:

<item_name> – название элемента интерфейса, который вызывает событие.

<event_name> – тип события (зависит от типа элемента)

<argument> – дополнительная переменная, в которую заносится значение элемента.

 

Тип события  Описание

pressed           нажали на кнопку

changed          изменили значение спиннера, в(ы)ключили флажок (радиокнопку)

picked             указали на объект в сцене

entered           изменили текст в текстовом поле

selected          выбрали пункт из списка

resized           изменили размер плавающего окна

moved             переместили плавающее окно

open                открыли свиток или утилиту

close                закрыли свиток или утилиту

 

Элементы интерфейса

Кнопка

button <name> [<caption>] [toolTip:<string>]

где <caption> – надпись на кнопке, toolTip: – всплывающая подсказка.

События: on <button> pressed do <expr>

 

Флажок

checkbox <name> [<caption>] [checked:<boolean>]

где checked – начальное состояние флажка (по умолчанию false – сброшен)

Свойства: <checkbox>.checked или <checkbox>.state (оба выдают одно и то же)

События: on <checkbox> changed <arg> do <expr>, в аргументе <arg> содержится новое состояние флажка – true или false.

 

Выпадающий список

dropdownlist<name>   [<caption>] [items:<array_of_strings>]

[selection:<number>] [height:<number>]

где       items: – массив строковых величин (пунктов списка)

            selection: – номер выделенного пункта, начиная с 1 (значение по умолчанию)

height: – общая высота списка по числу пунктов (10 по умолчанию). Если нужно, чтобы список состоял ровно из N пунктов, высота должна быть N+2.

Свойства:      

<dropdownlist>.items – массив пунктов списка.

<dropdownlist>.selection – номер выбранного пункта (0, если массив пустой).

<dropdownlist>.selected – текст выбранного пункта, через это свойство его можно поменять без обновления всего массива. Если массив пустой, равняется undefined.

Пример: dropdownlist scale_dd “Scale” items:#(“1/2”,”1/4”,”1/8”,”1/16”)

on scale_dd selected i do format “Вы выбрали %\n!” scale_dd.items[i]

 

Текстовое поле

edittext <name>    [<caption>] [text:<string>]

[fieldWidth:<integer>] [height:<integer>] [bold:<boolean>]

где       text: – текст в поле. Чтобы задать несколько строк, нужно писать между ними сразу два символа: возврат каретки (\r) и новая строка (\n).

Пример: “First Line \r\nSecond Line”

fieldWidth: – ширина текстового поля в пикселях (по умолчанию равна расстоянию от конца заголовка до правой границы свитка).

height: – высота поля в пикселях. Если это число больше высоты одной строки, поле превращается в текстовую область, куда можно вводить сразу несколько строк текста.

bold: – если параметр равен true, текст в поле будет полужирным,

если false – обычным (значение по умолчанию).

Свойства: <edittext>.text, <edittext>.caption, <edittext>.bold

События:

on <edittext> changed <arg> do <expr>, вызывается каждый раз, когда пользователь меняет текст в поле. В аргумент <arg> записывается новый текст.

on <edittext> entered <arg> do <expr>, вызывается, когда пользователь вводит текст, а потом нажимает кнопку ENTER или TAB, чтобы убрать курсор из поля. В аргумент <arg> записывается новый текст.

 

Область группы – область с заголовком, ограниченная линией

groupBox <name> [<caption>] [pos:<point2>] [width:<integer>] [height:<integer>]

где pos:, width:, height: – свойства, чтобы регулировать размер области группы.

 

Метка – просто надпись.

label <name> [<string>]           Пример: label lab1 “Пожалуйста, выберите объект:”

Ни свойств, ни событий у метки нет.

 

Кнопка выбора объекта

pickbutton <name>     [<caption>] [message:<string>]

[filter:<function>] [toolTip:<string>]

где       message: – дополнительный текст, отображаемый, когда кнопка нажата,  в статусной строке 3ds max. По умолчанию текста нет.

filter: – дополнительная функция, которая проверяет, соответствует ли выбранный объект некоторым, определенным пользователем критериям. У функции должен быть только один аргумент – выбираемый объект, а возвращать она может либо true (подходящий объект), либо false (неподходящий). По умолчанию функция отсутствует.

            toolTip: – текст всплывающей подсказки. Если не задан – текста нет.

Пример:

fn foo_filt obj = findString obj.name “foo”==1

pickbutton chooseit “Выберите объект” filter:foo_filt

on chooseit picked obj do

(master=obj

chooseit.text=obj.name)

Свойства: <pickbutton>.object – последний выбранный объект. Равно undefined, если объекты не выбирались. Свойство только для чтения.

События: on <pickbutton> picked <arg> do <expr>, где <arg> содержит выбранный объект.

 

Радиокнопки

radiobuttons <name> [<caption>] labels:<array_of_strings>

 [default:<number>] [columns:<number>]

где       labels: – массив строк, определяющий число радиокнопок и текст напротив каждой из них.

default: – номер радиокнопки, активной в данный момент. По умолчанию 1, если 0 – ни одна кнопка не выбрана.

columns: – число столбиков, которые будут заполняться радиокнопками. Ширина всех столбиков одинаковая и равна самой длинной метке напротив радиокнопки. По умолчанию, MAXScript располагает радиокнопки друг за другом в одной строке, а если не убираются – в один столбик.

Свойства: <radiobuttons>.state – номер выбранной радиокнопки, согласно массиву, если ни одна не выбрана – 0.

События: on <radiobuttons> changed <arg> do <expr>, вызывается, когда пользователь выбирает радикнопку из данного набора, в <arg> заносится номер новой радикнопки.

 

Спиннер

spinner <name>          [<caption>] [range:[min, max, val]]

[type:<name>] [scale:<float>]

[fieldWidth:<integer>] [indeterminate:<boolean>]

[controller:(<controller>)] [setKeyBrackets:<boolean>]

где       range: – величина Point3, содержащая минимальное, максимальное и начальное значение спиннера. По умолчанию [0,100,0]

type: – тип спиннера: #float, #integer или #worldunits. По умолчанию #float. Если установлен в #worldunits, значение спиннера показывается в текущих единицах отображения (display units) 3ds max, но измеряется все равно в системных единицах.

scale: – масштаб спиннера определяет величину минимального приращения. По умолчанию: 0.1 – для вещественных (float), 1 – для целых (integer) чисел.

fieldWidth: – ширина текстового поля спиннера в пикселях. По умолчанию, спиннер располагается так, что его левый край находится по центру свитка, а правый – по правой границе, исходя из этого определяется ширина.

indeterminate: – когда true, поле спиннера становится пустым, спиннер не работает, но его старое значение все равно доступно. Установка нового значения сбрасывает параметр в false.

controller: – связывает спиннер с определенным контроллером. Изменение значения спиннера влияет на контроллер и наоборот.

setKeyBrackets: – включает (true) или выключает (false) красные границы спиннера, показывающие наличие ключевых кадров в анимации.

Свойства: <spinner>.range – диапазон и начальное значение (аналогично соответствующему параметру), <spinner>.value – значение спиннера, <spinner>.setKeyBrackets, <spinner>.indeterminate.

События:

on <spinner> changed <arg> do <expr>, вызывается, когда пользователь прокручивает спиннер или вводит в его поле новое значение, а потом нажимает ENTER или TAB, чтобы выйти из поля спиннера. Аргумент <arg> содержит новое значение спиннера.

on <spinner> entered do <expr>, вызывается, когда пользователь вводит в поле новое значение, а потом нажимает ENTER или TAB, чтобы выйти из поля спиннера. Событие on <spinner> changed также вызывается в этот момент, если оно определено и свойство <spinner>.value обновляется.

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]