ControlP5 и залипающая кнопка

Нет ответов
Morn91
Offline
Зарегистрирован: 18.10.2014

Добрый день, у меня возникла небольшая проблема с библиотекой controlP5. Есть две кнопки, видимая и скрытая. Если нажать на одну кнопку — она исчезает и появляется другая. Проблема в том, что вторая кнопка залипает. Вот простой код для демонстрации:

import controlP5.*;
 
ControlP5 cp5;
Button button1, button2;
 
int i = 0;
 
void setup() {
  size(200, 200);
  cp5 = new ControlP5(this);
  button1 = cp5.addButton("BUTTON 1")
    .setPosition((width - 70) / 2, 50);
  button2 = cp5.addButton("BUTTON 2")
    .setPosition((width - 70) / 2, height - 70)
      .setVisible(false);
}
 
void controlEvent(ControlEvent theEvent) {
  if (theEvent.getName() == "BUTTON 1") {
    i = 1;
    println("BUTTON 1 was pressed.");
  }
  if (theEvent.getName() == "BUTTON 2") {
    i = 2;
    println("BUTTON 2 was pressed.");
  }
}
 
void draw() {
  background(128);
  if (i == 1) {
    button1.setVisible(false);
    button2.setVisible(true);
    i = 0;
  }
  if (i == 2) {
    button1.setVisible(true);
    button2.setVisible(false);
    i = 0;
  }
}

Если нажимать кнопки по очереди, в логе можно увидеть:

BUTTON 2 was pressed.
BUTTON 2 was pressed.
BUTTON 1 was pressed.
BUTTON 2 was pressed.
BUTTON 2 was pressed.
BUTTON 1 was pressed.

Как это можно исправить?