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

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

Функция MOUSEBUTTON

Действие, продолжающееся всё время удержания кнопки, требует знать её текущее состояние, а не момент нажатия. Функцию MOUSEBUTTON вызывают повторно, чтобы проверить, удерживается ли указанная кнопка мыши; очередь событий при этом сохраняется.

Где доступно чтение

Чтение доступно при графическом SCREEN 1..10 или активном CANVAS. Без рисуемой поверхности возникает MB3010. Нажатая кнопка даёт TRUE, отпущенная — FALSE.

Чтобы заметить отдельное нажатие один раз, применяют MOUSEPRESS.

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

MOUSEBUTTON(<номер кнопки>)

Передайте INTEGER с номером кнопки.

АргументТипОписание
<номер кнопки>INTEGERНомер кнопки мыши: 1 — левая, 2 — правая, 3 — средняя.

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

Результат проверки имеет тип BOOLEAN.

  • TRUE, если указанная кнопка сейчас удерживается.
  • FALSE, если кнопка не удерживается или передан неподдерживаемый номер кнопки.

Чтение удержания не извлекает события нажатия, отпускания, перемещения или колеса. Неподдерживаемый номер возвращает FALSE в действующей среде ввода.

Состояние и события

  • Встроенная функция MOUSEBUTTON не сообщает нажатие как событие и не различает момент нажатия и удержание.
  • События нажатия доступны через MOUSEPRESS, а события отпускания, перемещения и колеса — через ON MOUSE.
  • Координаты мыши читаются через встроенные функции MOUSEX и MOUSEY.
  • Одноразовая проверка нажатия выполняется функцией MOUSEPRESS.

Диагностика

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

Пример проверки левой кнопки

IF MOUSEBUTTON(1) THEN
    PRINT "LEFT"
END IF

Условие истинно всё время, пока кнопка удерживается, поэтому в цикле такая проверка срабатывает на каждой итерации, а не один раз на нажатие.

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

См. также