Главная chevron_right Функции chevron_right USB chevron_right Mouse.release()

Mouse.release()

Mouse.release() отпускает кнопку мыши, зафиксированную через Mouse.press() — нужна для перетаскивания, рисования и других действий, где кнопка должна удерживаться.

Полная статья

Описание

Mouse.release() завершает удержание кнопки мыши, начатое через Mouse.press(). Если вызвать функцию без аргумента, будет отпущена левая кнопка.

Функция нужна там, где кнопка должна оставаться зажатой на протяжении нескольких действий: перетаскивание объектов, рисование в графических редакторах, выделение текста мышью. Пара Mouse.press() / Mouse.release() даёт полный контроль над тем, когда именно кнопка нажата и когда отпущена.

Синтаксис

  • Mouse.release()
  • Mouse.release(button)

Параметры

button: идентификатор кнопки, которую нужно отпустить. Тип данных: char.

Допустимые значения:

  • MOUSE_LEFT — левая кнопка (используется по умолчанию, если аргумент не указан)
  • MOUSE_RIGHT — правая кнопка
  • MOUSE_MIDDLE — средняя кнопка

Возвращает

Ничего

Пример кода

    #include <Mouse.h>

    void setup() {
      //Кнопка, инициирующая нажатие Mouse
      pinMode(2, INPUT);
      //Кнопка, завершающая нажатие Mouse
      pinMode(3, INPUT);
      //инициализация библиотеки Mouse
      Mouse.begin();
    }

    void loop() {
      //если кнопка на пине 2 замкнута, нажать и удерживать левую кнопку мыши
      if (digitalRead(2) == HIGH) {
        Mouse.press();
      }
      //если кнопка на пине 3 замкнута, отпустить левую кнопку мыши
      if (digitalRead(3) == HIGH) {
        Mouse.release();
      }
    }

Практические замечания

  • Всегда отпускайте именно ту кнопку, которую удерживали через Mouse.press(button). Если нажать левую, а попытаться отпустить правую, операционная система продолжит считать левую кнопку зажатой.
  • Когда в скетче используется несколько кнопок, явно передавайте MOUSE_LEFT, MOUSE_RIGHT или MOUSE_MIDDLE в обоих вызовах — это делает код понятным и исключает случайные ошибки.
  • Для простого одиночного клика удобнее использовать Mouse.click(): он сам выполняет нажатие и отпускание без необходимости вызывать две функции.
  • Если скетч предусматривает выход из режима управления мышью через Mouse.end(), убедитесь, что перед этим вызовом все удерживаемые кнопки отпущены. Иначе компьютер может «застрять» с зажатой кнопкой до перезагрузки или отключения устройства.
  • При отладке удобно выводить в Serial Monitor состояние кнопок: так проще убедиться, что каждый Mouse.press(button) действительно сопровождается парным Mouse.release().

Полезные материалы