Встроенная функция
Функция 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
Условие истинно всё время, пока кнопка удерживается, поэтому в цикле такая проверка срабатывает на каждой итерации, а не один раз на нажатие.