Читайте также: |
|
Внутри тела свитка (или утилиты, как специального случая свитка) может содержаться строго определенный набор элементов, а именно
Локальные переменные чаще всего используются для сохранения данных, ассоциированных со свитком, таких, как выбранные объекты или массив сгенерированных утилитой вершин. Правила видимости переменных и способы доступа к этим переменным обсуждаются далее. Глобальные переменные не могут быть объявлены внутри утилиты или свитка. Если Вы считаете их применение целесообразным, то их можно определить непосредственно перед кодом утилиты. При этом следует помнить, что переменные с такими же именами могут быть объявлены в других утилитах.
Эти средства могут использоваться для описания действий пользователя в видовых окнах 3ds max, и будут рассматриваться позже.
Эти компоненты, такие как кнопки, задатчики, чек-боксы и т.д. будут размещаться в определяемом свитке. Несколько особняком стоят описания групп компонентов. Такое описание применяется для того, чтобы некоторая часть кнопок, задатчиков и проч. была обведена рамкой. Синтаксис такого описания следующий
group Символьная_строка
Далее следуют заключенные в круглые скобки определения компонентов интерфейса, входящих в эту группу. Заголовок, заданный символьной строкой, выводится в левом верхнем углу рамки. Например, панель утилиты, определенной следующим скриптом
utility GT "Group Testing"
(group "Group N 1"
(button but_1 "button N 1"
button but_2 "button N 2"
button but_3 "button N 3"
RadioButtons rb "Radio Buttons" labels:("N 1","N 2","N 3)
)
group "Group N 2
(checkbox cb_1 "Check box N 1"
checkbox cb_2 "Check box N 2"
checkbox cb_3 "Check box N 3"
)
)
выглядит так
В приведенной утилите, как видно на рисунке, две группы компонентов, озаглавленные Group N 1 и Group N 2.
Данные функции описывают действия, предпринимаемые утилитой, если пользователь совершает какие-либо действия с компонентами интерфейса, например, нажимает кнопку или изменяет значение в задатчике.. Эти действия пользователя генерируют именованные события. Если Вы определили для этого события свою функцию обработчик, то код этой функции получит управление. Функция обработчик должна быть определена особым образом, а именно
on Переменная_компонента_интерфейса Название_события
Список_аргументов do
Далее следует выражение, часто, но не обязательно заключенное в круглые скобки, которое и будет выполняться при генерации события.
Переменная компонента интерфейса берется из определения того задачика, чек-бокса и т.д., для которого пишется функция обработчик. Имя события определяет его тип, например нажатие кнопки или изменение состояния чек-бокса. О том, какие события генерируются каждым из компонентов интерфейса, будет рассказано в описании соответствующего компонента.
Список аргументов так же свой для каждого события и будет приведен в его описании. Пока отметим только, что его может и не быть вовсе. К обработчику события можно обратиться и как к обычной функции. Например, если в свитке определен чек-бокс Check_1, то внутри свитка к обработчику события changed можно обратиться так
Check_1.changed true
Можно так же запомнить ссылку на эту функцию в любой переменной
FunCheck_1 = Check_1.changed
и в дальнейшем обращаться к обработчику через нее, например
FunCheck_1 false
Дата добавления: 2015-10-31; просмотров: 84 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Составные части тела утилиты | | | Свойства, методы и события свитков и утилит |