Последовательное составление кода сценария зачастую отнимает немало времени, особенно когда это касается создания разворачивающейся панели сценарной утилиты. Средство Visual MAXScript программы 3ds max существенно упрощает решение такого рода задач. Действительно, для создания элементов разворачивающейся панели с помощью средства Visual MAXScript достаточно лишь перетащить указатель мыши, при этом основная структура кода для определенных событий будет сгенерирована автоматически.
Окно Visual MAXScript состоит из двух основных панелей. В левой создают и должным образом размещают элементы разворачивающейся панели, правая содержит вкладки Value (Значения) и Event Handlers (Управление событиями). Во вкладке Value перечислены всевозможные свойства и текущие значения выбранного элемента макетируемой разворачивающейся панели. Чтобы изменить значение любого свойства, достаточно щелкнуть на его имени в колонке Property (Свойство) и ввести новую величину в соответствующей ячейке колонки Value (Значение). Предположим, что в левой панели окна Visual MAXScript выбран элемент Button (Кнопка). Для того чтобы изменить название этого элемента, достаточно щелкнуть в строке caption колонки Properties, а затем в соответствующей строке колонки Value ввести нужный текст.
Во вкладке Event Handlers приведены все события, которые могут быть ассоциированы с выделенным элементом. Для активизации события просто установите флажок слева от его имени. Например, для элемента Button (Кнопка) можно активизировать событие pressed (Нажата). В результате этого в код будущей разворачивающейся панели будет добавлена соответствующая функция. В теле этой функции вы сможете указать команды, которые будут выполнены сразу после того, как произойдет упомянутое событие.
В верхней части окна Visual MAXScript находится строка меню и основная панель инструментов. С помощью команд меню File (Файл) можно создать новый макет разворачивающейся панели (New или <Ctrl+N>), сохранить текущий (Save или <Ctrl+S>) либо открыть ранее сохраненный макет (Open или <Ctrl+O>). Команды меню Edit (Правка) позволят вырезать (Cut или <Ctrl+V>), копировать (Сору или <Ctrl+C>) и вставлять (Paste или <Ctrl+V>) элементы макета. Каждая из этих команд продублирована одноименной кнопкой в основной панели инструментов окна Visual MAXScript.
Меню Layout (Макет) включает подменю Align, команды которого предназначены для выравнивания элементов по левому (Left или <Ctrl+←>), правому (Right или <Ctrl+→>), верхнему (Тор или <Ctrl+↑>) и нижнему (Bottom или <Ctrl+↓>) краю макета. С помощью команд этого подменю элементы макета можно также выровнять по горизонтали (Horiz Center или <Shift+F9>) и вертикали (Vert Center или <F9>). Команды подменю Space Evenly (Равномерное размещение) позволяют разместить элементы параллельно (Across или <Alt+→>) либо по нижнему краю (Down или <Alt+↓>). С помощью команд подменю Make Same Size можно сделать элементы макета одинаковыми по ширине (Width), высоте (Height) или же и по ширине, и по высоте (Both). Для центрирования элементов относительно диалогового окна предназначены команды Vertical (<Ctrl+F9>) и Horizontal (<Ctrl+Shift+F9>) подменю Center in Dialog. Для зеркального отображения элементов выберите команду Align>Flip. Параметры сетки, которая облегчает построение элементов макетируемой панели, можно изменить в диалоговом окне Guide Settings. Чтобы открыть это окно, выберите команду Layout>Guide Settings (Макетирование>Настройки сетки). Для сокрытия/отображения сетки воспользуйтесь кнопкой Grid/Snap (Сетка/Привязка), расположенной в правой части основной панели инструментов окна Visual MAXScript.
Щелчок правой кнопкой на макете формы (в левой панели) открывает контекстное меню, в котором есть все перечисленные команды.
Макетируемая разворачивающаяся панель окрашена в серый цвет и расположена в левой части окна Visual MAXScript. Для изменения размеров панели достаточно перетащить в нужном направлении квадратные маркеры черного цвета, расположенные по ее периметру. Текущие размеры панели отображаются в правом нижнем углу окна Visual MAXScript. После изменения размеров можно добавлять в макетируемую панель все необходимые интерфейсные элементы.
Чтобы добавить в форму один из этих элементов, щелкните на соответствующей кнопке панели инструментов. затем в пределах формы перетащите указатель мыши в нужном направлении. В форме появится новый выделенный элемент. По периметру выделенного элемента отображены квадратные маркеры черного цвета. Для изменения размеров выделенного элемента достаточно перетащить любой маркер в нужном направлении. Чтобы переместить элемент в пределах макетируемой панели, щелкните в его центре и перетащите указатель мыши.
Содержимое вкладок Value и Event Handlers окна Visual MAXScript обновляется автоматически, отображая свойства и события выделенного элемента. Значения параметров, например x-pOS (значение по оси X) или width (ширина), обновляются автоматически при перемещении выделенного элемента или в процессе изменения его размеров соответственно.
Панель инструментов в нижней части окна Visual MAXScript содержит кнопки, предназначенные для создания элементов формы. Элементы управления, которые можно добавить в форму, приведены в табл. 41.1.
Рис. 41.1. Окно Visual MAXScript значительно облегчает создание пользовательских разворачивающихся панелей
Элементы разворачивающейся панели макетируют в окне Visual MAXScript, после чего созданный макет можно сохранить в .vms-файле, выбрав команду File>Save. Если окно Visual MAXScript открывалось из окна редактора MAXScript, команда Save автоматически обновит и содержимое окна редактора.
На рис. 41.5 показан результат выполнения сценария BuildCube.ms. Этот сценарий можно применить и к любому другому выделенному объекту.
Теперь попробуем освоить этот мощный инструмент на практике. В приведенном ниже примере воспользуемся окном Visual MAXScript для макетирования разворачивающейся панели и записи сценария, который "заставит" ее функционировать.
Чтобы создать собственную разворачивающуюся панель посредством окна Visual MAXScript выполните следующее.
В папке Chapter Example Files на прилагаемом компакт-диске найдите файл Chap 41. zip, распакуйте его и откройте файл BuildCube.max. В файле находится элементарная сфера. Выбрав в главном меню программы команду MAXScnpt>New Script, откройте окно редактора MAXScript и введите в нем следующее: В окне редактора MAXScript выберите команду Edit>New Rollout или нажмите клавишу <F2>. Откроется окно Visual MAXScript. Параметры будущей панели перечислены во вкладке Value. В левой панели окна Visual MAXScript перетащите правый нижний маркер черного цвета, изменив размер формы. Щелкните на кнопке Spinner нижней панели инструментов окна Visual MAXScript. затем щелкните в пределах формы макетируемой панели и, не отпуская кнопку, перетащите указатель мыши. В форме появится простейший элемент управления — счетчик. Теперь (для только что созданного счетчика) во вкладке Value измените значения следующих свойств: name (имя) — SideNum, caption (заголовок) — No. Of Side Objects, range (диапазон)— [1,100,5]. Для свойства type (тип) выберите элемент #integer (целое число). Величины свойства range представляют минимальное значение счетчика (1), его максимальное значение (100) и значение по умолчанию (5). Перетаскивая маркеры элемента, подгоните его размер под размеры формы. Еще раз щелкните на кнопке Spinner и создайте в форме второй счетчик. Во вкладке Value измените значения следующих свойств: name — length, caption — Side Length, type — #integer, range — [1,1000,50]. Перетаскивая маркеры элемента, подгоните его под форму. Щелкните на кнопке Button нижней панели инструментов и под счетчиками создайте кнопку. Во вкладке Value введите следующие значения: name— createCube, caption — Create Cube. Перетащите маркеры этого элемента таким образом, чтобы текст поместился на кнопке. Активизируйте вкладку Event Handlers и установите флажок Pressed (Нажата). Перетаскивая указатель мыши, выделите оба счетчика. Затем, чтобы выровнять выделенные элементы, выберите команду Layouts Aligns Right (Макет>Выровнять> По правому краю) или нажмите комбинацию клавиш <Ctrl+—». На рис. 41.3 показан внешний вид новой разворачивающейся панели.Чтобы выделить сразу несколько элементов формы, щелкните мышью в ее пределах и, не отпуская кнопку, переместите указатель в нужном направлении. Несколько выделенных элементов можно выровнять по левому краю (<Ctrl+←>), по горизонтали (<Shift+F9>), по правому краю (<Ctrl+→>), по верхнему краю (<Ctrl+↑>), по вертикали (<Р9>) или по нижнему краю (<Ctrl+↓>).
Несколько выделенных элементов можно разместить параллельно (<Alt+→>) или по нижнему краю (<Alt+↓>). С помощью команд меню Layouts Make Same Size несколько выделенных элементов формы можно сделать одинаковыми по ширине (Width), высоте (Height) или же и по ширине, и по высоте (Both). Выделенные элементы можно выровнять по центру диалогового окна вертикально (<Ctrl+F9>) или горизонтально (<CtrI+Shift+F9>). Команда Layouts Flip позволяет зеркально изменить расположение выделенных элементов.
На рис. 41.2 показана форма разворачивающейся панели с несколькими выровненными элементами.
Ввод текстовых команд сценария MAXScript порой отнимает слишком много времени. А чтобы сценарий функционировал нормально, необходимо вводить каждую команду последовательно и без ошибок. Подобным способом особенно сложно макетировать элементы разворачивающихся панелей. Но в 3ds max предусмотрено специальное средство Visual MAXScript, позволяющее значительно ускорить процесс создания разворачивающихся панелей.
Чтобы открыть окно Visual MAXScript (рис. 41.1), активизируйте вкладку Utilities панели Command и щелкните на кнопке More. В списке появившегося диалогового окна Utilities выберите элемент Visual MAXScript и щелкните на кнопке ОК. Другой способ открыть это окно — щелкнуть правой кнопкой мыши в окне редактора MAXScript и в появившемся контекстном меню выбрать команду New Rollout (Создать панель) или Edit Rollout (Редактировать панель). Вместо последней команды можно воспользоваться клавишей <F2>.