Читайте также: |
|
MAXScript позволяет пользователю создавать окна, которые будут появляться на экране поверх стандартного интерфейса 3ds max, и размещать в этих окнах свитки с компонентами пользовательского интерфейса. Когда это окно появится на экране, пользователь может перемещать его, сворачивать и разворачивать, а так же изменять его вертикальный размер. Для поддержки таких возможностей в MAXScript имеется специальный класс RolloutFloater и две функции. Первая из них
newRolloutFloater Строка Число_1 Число_2 Число_3 Число_4
Первый параметр задает заголовок окна, второй и третий – соответственно ширину и высоту окна. Ширина командной панели 3ds max, на тот случай, если окно должно воспроизводить утилиту, 218 пикселей. Четвертый и пятый параметры необязательны и задают вертикальное и горизонтальное смещение окна относительно левого верхнего угла экрана. Если они не заданы, то окно выводится в центр экрана. Результатом функции будет значение типа RolloutFloater, которое используется для размещения на созданном окне свитков с компонентами интерфейса.
Вторая функция для работы с окнами предназначена для их закрытия
closeRolloutFloater Окно
В качестве параметра должно задаваться значение, полученное с помощью функции newRollotFloater. Соответствующее окно при этом закрывается. Для всех свитков, размещенных в этом окне, вызывается функция-обработчик события close.
Поместить свиток в окно можно с помощью функции
addRollout Свиток Окно rolledUp: логическое выражение
В качестве окна задается значение, полученное как результат функции newRolloutFloater. Параметр rolledUp необязателен и задает начальное состояние свитка, true – свернут, false – закрыт.
Для удаления свитка из окна используется функция
removeRollout Свиток Окно
Указанный свиток удаляется из указанного окна.
Каждое окно является членом класса и, следовательно, имеет свойства. Свойство
Окно. size
содержит точку в двумерном пространстве. Ее первая координата равна ширине окна, а вторая – высоте. Координаты окна на экране можно получить с помощью свойства
Окно. pos
которое так же возвращает точку в двумерном пространстве – координаты левого верхнего угла на экране. Оба свойства могут быть использованы как для чтения, так и для записи, причем их изменение немедленно отображается на экране. При изменении размеров окна или расположения его на экране, вне зависимости от того сделано это пользователем или программно, функция-обработчик событий resized или moved вызывается для первого из размещенных в окне свитков. В качестве примера можно отследить события, происходящие со свитками, на таком примере.
rollout Roll_1 "Rollout №1"
(bitmap b1 bitmap:(bitmap 50 50)
on Roll_1 close do print "Roll_1 Closed"
on Roll_1 resized size do print "Roll_1 Resized"
on Roll_1 moved pos do print "Roll_1 Moved"
)
rollout Roll_2 "Rollout №2"
(button but "MyButton"
on Roll_2 close do print "Roll_2 Closed"
on Roll_2 resized size do print "Roll_2 Resized"
on Roll_2 moved pos do print "Roll_2 Moved"
)
gwrf = newRolloutFloater "Testing Floater Window" 300 220
addRollout Roll_1 gwrf rolledUp:true
addRollout Roll_2 gwrf
В частности при изменении размера и координат окна, в окне интерпретатора будут выводиться сообщения только для свитка Roll_1.
Дата добавления: 2015-10-31; просмотров: 100 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Свойства, методы и события свитков и утилит | | | Общие параметры компонентов пользовательского интерфейса |