Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Составные части тела утилиты

Читайте также:
  1. II. Основна частина уроку
  2. II. Основна частина уроку
  3. II. Основна частина уроку
  4. II. Основна частина уроку
  5. II. Основна частина уроку
  6. II. Основна частина уроку
  7. II. Основна частина уроку

Тело утилиты может состоять из следующих элементов

· Определение локальных переменных, функций и структур;

· Определение компонентов пользовательского интерфейса;

· Определение функций-обработчиков событий компонентов пользовательского интерфейса.

Однако есть у утилит еще одна возможность. Среди компонентов можно определять собственные свитки, которые могут содержать свои компоненты, переменные, структуры и обработчики. Свиток определяется следующим образом

rollout Имя_переменной Символьная_строка

rolledUp: Логическое_выражение silentErrors: Логическое_выражение

Далее следует тело свитка, заключенное в скобки. Как нетрудно видеть, описание свитка полностью повторяет описание утилиты. На самом деле, все наоборот. Утилита фактически является частным случаем свитка, о чем и свидетельствует ее принадлежность к классу RolloutClass. Ключевое слово utility означает только то, что имя этого свитка должно появится в списке утилит и автоматическое создание кнопки Close. Разберем для примера утилиту, содержащую два вложенных свитка. Свитки можно определять и вне тела утилиты, например, для того, чтобы вывести этот свиток в окне. О том, как это делается, будет рассказано при описании правил создания перемещаемых окон.

utility MyUtil "My Utility"

(local pot

--- Свиток bout

rollout bout "About My Utility"

(button aboutMU "About" width:45 height:20

on aboutMU pressed do

messagebox "My First Utility\nby ME\nVersion.1" \

title:"About My Utility"

) --Конец определения свитка bout

--- Свиток creator

rollout creator "The Teapot"

(group "Object Creator"

(button tea "Teapot"

spinner rad "Radius" range:[10,50,20] type:#integer

spinner seg "Segments" range:[4,32,12] type:#integer scale:1

)

--- Обработчик нажатия кнопки tea

on tea pressed do

(pot=teapot radius:rad.value

pot.name="TestPot"

pot.segs=seg.value

) -- Конец обработчика нажатия кнопки tea

on rad changed value do

pot.radius=value

on seg changed value do

pot.segs=seg.value

) -- Конец определения свитка creator

-- Обработчики событий утилиты

-- Открытия

on MyUtil open do

(addRollout bout

addRollout creator

) -- Конец обработчика открытия утилиты MyUtil

-- Закрытия

on MyUtil close do

(removeRollout bout

removeRollout creator

) -- Конец обработчика закрытия утилиты MyUtil

)-- Конец определения утилиты MyUtil

Панель утилиты, определенной таким образом, приведена на рисунке

После того, как выполнился скрипт, определяющий утилиту, переменная, содержащая ссылку на нее (в приведенном примере переменная MyUtil) будет существовать весь сеанс работы с 3ds max, если только не будет определена новая утилита с тем же именем. Время жизни свитков, определенных вне тела утилиты, зависит от того, в каком контексте они определены. Для большей информации на эту тему, смотрите главу об областях видимости объектов.

 


Дата добавления: 2015-10-31; просмотров: 77 | Нарушение авторских прав


Читайте в этой же книге: Rotate T 180 z_axis -- и повернем чайник. | Строковый поток | Массив параметров | Функции, работающие с наборами | Прочие функции | Выделенные вершины | Выделенные грани | Выделенные ребра | Битовые массивы | Массивы модификаторов |
<== предыдущая страница | следующая страница ==>
Панель скрипт-утилиты| Составные части тела свитка

mybiblioteka.su - 2015-2024 год. (0.009 сек.)