- •С чего начать
- •Переменные и присвоение им значений
- •Области видимости
- •Настойчивые переменные
- •Изменяемый тип переменных
- •Присвоение значения по ссылке
- •Выделение памяти и уборка мусора
- •Имена переменных
- •Числовые литералы
- •Строковые литералы
- •Литералы времени
- •Литералы имен объектов
- •Литералы
- •Литералы точек в двумерном и трехмерном пространстве
- •Литералы массивов
- •Выражения
- •Простые выражения
- •Математические выражения
- •Порядок выполнения операций в математических выражениях
- •Полиморфизм
- •Выражения сравнения
- •Логические операции
- •Сокращенное выполнение логических выражений
- •Позиционированные и именованные параметры
- •Приоритет вызова функций
- •Написание вызова функции в несколько строк
- •Другой способ вызова функций
- •Контекстные выражения
- •Комментарии
- •Обращение из одного скрипта к другим
- •Управление порядком выполнения операторов
- •Пропуск выполнения цикла
- •Собственная обработка ошибок
- •Оформление функций
- •Переменная, содержащая функцию
- •Параметры функций
- •Принудительное завершение функции
- •Определение структур
- •Создание функций, локальных внутри структуры
- •Базовые классы maxScript Класс Value
- •Операторы
- •Литералы
- •Операторы
- •Свойства
- •Операторы
- •Точка в трехмерном пространстве
- •Литералы
- •Конструкторы
- •Свойства
- •Операторы
- •Литерал
- •Конструкторы
- •Свойства
- •Произвольный поворот
- •Литералы
- •Конструкторы
- •Операторы
- •Свойства
- •Углы Эйлера
- •Операторы
- •Свойства
- •Прямоугольник
- •Литералы
- •Конструкторы
- •Свойства
- •Операторы
- •Функция
- •Массив_чисел
- •Вспомогательные методы Функция
- •Функция
- •Можно открыть зашифрованный файл, используя функцию
- •Свойства
- •Свойства
- •Особенности работы с ключами анимации
- •Массив параметров
- •Конструкторы
- •Свойства
- •Операторы
- •Множества
- •Шаблонные группы
- •Свойства
- •Операторы
- •Функции для работы с группами
- •Наборы объектов
- •Конструкторы
- •Свойства
- •Операторы
- •Функции, работающие с наборами
- •Дополнительные сведения
- •Конструкторы
- •Свойства
- •Операторы
- •Прочие функции
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Операторы
- •Конструкторы
- •Конструкторы
- •Свойства
- •Свойства
- •Операторы
- •Литералы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Прочие функции
- •Скрипт-утилиты
- •Панель скрипт-утилиты
- •Составные части тела свитка
- •Создание перемещаемых окон
- •Видимость локальных переменных, структур, функций и компонент интерфейса из кода свитка
- •Доступ к локальным переменным и прочим элементам утилит и свитков из внешнего кода
- •Компоненты пользовательского интерфейса
- •Название_компонента Имя_переменной Символьная_строка
- •Общие свойства компонентов пользовательского интерфейса
- •Общие параметры компонентов пользовательского интерфейса
- •Типы компонентов пользовательского интерфейса Для примера рассмотрим утилиту, использующую все возможные компоненты пользовательского интерфейса
- •Битовая карта
- •Параметры
- •Свойства
- •События
- •Параметры
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Выпадающий список
- •Параметры
- •Свойства
- •События
- •Свойства
- •События
- •Кнопка выбора текстурной карты
- •Параметры
- •Свойства
- •События
- •Кнопка выбора материала
- •Параметры
- •Свойства
- •События
- •Список с возможностью множественного выбора
- •Параметры
- •Свойства
- •События
- •Кнопка выбора объекта
- •Параметры
- •Свойства
- •События
- •Задатчик
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Кнопки с картинками
- •Скрипт контекстного меню
- •Тело контекстного меню
- •Пункт меню
- •Разделитель
- •Подменю
- •Макро скрипты
- •Создание файлов с иконками
- •Средства работы с мышью
- •Остановить работу средства можно вызовом функции
- •Правила оформления средств работы с мышью
- •События
- •Скрипт плугины
- •Правила построения скрипт-плугина
- •Внесение изменений в плугин
- •Урок 1. Твердые тела
- •Создание набора твердых тел
- •Добавление тел к набору
Остановить работу средства можно вызовом функции
stopTool Средство
Чаще всего эта функция вызывается из обратного вызова функции или обработчика события.
Правила оформления средств работы с мышью
Тело средства - это участок программы на MAXScript, который следует непосредственно за определением средства. Оно может включать в себя локальные переменные, функции и структуры, но обращение к ним из других программ не предусматривается. Кроме того, в теле средства могут находиться обработчики событий, генерируемых, главным образом, при работе пользователя с мышью. Во всех функциях, в том числе и в обработчиках событий, доступны тринадцать предопределенных переменных, из которых можно получить данные о состоянии клавиатур и мыши.
Название переменной |
Тип переменной |
Описание |
viewPoint |
Point2 |
Координаты курсора мыши в пикселях видового окна |
worldPoint |
Point3 |
Текущие координаты указателя мыши, спроектированного на активную сетку, в мировой системе координат. |
worldDist |
Point3 |
Расстояние по осям X, Y и Z от точки предыдущего нажатия кнопки мыши до текущего положения проекции курсора мыши в мировой системе координат |
worldAngle |
Point3 |
Углы между мировыми осями X, Y и Z и направлением на точку предыдущего нажатия кнопки мыши |
gridPoint |
Point3 |
Текущие координаты указателя мыши, спроектированного на активную сетку, в системе координат активной сетки. |
gridDist |
Point3 |
Расстояние по осям X, Y и Z от точки предыдущего нажатия кнопки мыши до текущего положения проекции курсора мыши в системе координат активной сетки |
gridAngle |
Point3 |
Углы между осями активной сетки X, Y и Z и направлением на точку предыдущего нажатия кнопки мыши |
shiftKey |
Boolean |
True, если нажата клавиша Shift, в противном случае – false |
ctrlKey |
Boolean |
True, если нажата клавиша Ctrl, в противном случае – false |
altKey |
Boolean |
True, если нажата клавиша Alt, в противном случае – false |
lButton |
Boolean |
True, если нажата левая кнопка мыши, в противном случае – false |
mButton |
Boolean |
True, если нажата средняя кнопка мыши, в противном случае – false |
rButton |
Boolean |
True, если нажата правая кнопка мыши, в противном случае – false |
События
Средства работы с мышью генерируют следующие события. Перед началом работы
on start do
При завершении работы
on end do
Каждое перемещение мышки до первого нажатия кнопки вызывает событие
on freeMove do
Нажатие на кнопку мыши
on mousePoint Параметр do
В параметре передается номер нажатия. При обработке номера нажатия необходимо учитывать следующий факт. Первое нажатие кнопки мыши считается первым нажатием, отпускание кнопки после него – вторым. А далее учитываются только отпускания кнопки. Таким образом, нажав на кнопку мыши (в обычном смысле этого слова) три раза, Вы получите четыре события mousePoint. Одно на первом нажатии, одно на первом отпускании и еще два на двух следующих отпусканиях.
Перемещение курсора мыши после первого нажатия генерирует событие
on mouseMove Параметр do
Значение параметра аналогично предыдущему. При нажатии правой клавиши мыши или клавиши Esc происходит событие
on mouseAbort Параметр do
Параметр здесь так же содержит число нажатий кнопки мыши.
