Axiom Справочник языка

Встроенная функция

Функция MOUSEX

Положение указателя программа узнаёт в тот момент, который выбрала сама. Функция MOUSEX возвращает текущую горизонтальную координату указателя мыши, и её вызывают в собственном цикле, когда нужно сверить позицию с рисунком или интерфейсом.

Что измеряется на каждой поверхности

На экране SCREEN координата X измеряется в пикселях клиентской области. На холсте CANVAS результат соответствует мировому положению указателя после преобразования через VIEWPORT и CAMERA. Для чтения нужен графический SCREEN 1..10 или активный CANVAS; отсутствие поверхности сообщает MB3010.

На экране VIEW, WINDOW и PMAP не пересчитывают координату мыши, а на холсте учитываются текущие область и камера. Функция читает текущее положение без извлечения события перемещения; для процедуры по каждому событию используется ON MOUSE.

Синтаксис и аргументы

MOUSEX()

Поддерживается единственная форма MOUSEX(). Аргументов нет, но скобки остаются частью вызова.

Что возвращает функция

Координата возвращается как значение типа LONG.

  • Если активен SCREEN и среда выполнения знает положение указателя, возвращается текущая X-координата в клиентской области активного окна.
  • Если активен CANVAS и среда выполнения знает положение указателя, возвращается мировая X-координата точки под мышью.
  • Если положение указателя недоступно, возвращается -1.

Функция не создаёт очередь мышиных событий и не хранит историю перемещений.

Начало координат и отрицательные значения

В SCREEN начало клиентской области находится слева сверху; X увеличивается вправо. В CANVAS функция возвращает камера X + физический X - левая граница области.

В CANVAS мировая координата считается как положение камеры плюс смещение указателя внутри прямоугольника VIEWPORT. Точка вне холста или вне активной области VIEWPORT не образует мировую координату: функция возвращает -1. Отрицательное мировое значение при этом может быть допустимой координатой сцены и само по себе не доказывает отсутствие указателя.

Для вертикальной координаты используется встроенная функция MOUSEY, а для кнопок — встроенная функция MOUSEBUTTON.

Диагностика

  • MB2004: в встроенную функцию MOUSEX переданы аргументы.
  • MB3010: встроенная функция MOUSEX вызвана без активного графического режима SCREEN и без активного CANVAS.

Пример чтения координат

SCREEN 1
PRINT MOUSEX()
PRINT MOUSEY()
SLEEP

Программа печатает две координаты указателя в пикселях окна. Если положение ещё неизвестно, выводятся -1 и -1. Затем программа ждёт клавишу.

Запускаемые примеры

См. также