Processing:Справочник языка Processing/noLoop()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.


noLoop() [1]

Обозначение

noLoop()

Описание

Останавливает непрерывный вызов функции draw(). Если вызывается функция loop(), то возобновляется непрерывный вызов функции draw(). Если используется вызов функции noLoop() в теле функции setup(), он должен быть последней строкой внутри блока.

Если используется функция noLoop(), то невозможно манипулировать экраном или получать доступ к нему внутри функций обработки событий, таких как mousePressed() или keyPressed(). Вместо этого используйте эти функции для вызова redraw() или loop(), которые вызовут функцию draw(), которая может корректно обновлять экран. Это означает, что при вызове функции noLoop() невозможно выполнять рисование на экране, и не могут быть использованы такие функции, как saveFrame() или loadPixels().

В то время как вызов функции loop(), приводит к возобновлению непрерывного вызова функции draw(). Функция redraw() позволяет вызвать функцию draw() один раз, не смотря на наличие вызова функции noLoop() в теле функции setup().

Синтаксис

noLoop()

Параметры

void

Возвращаемое значение

void

Пример

№1

void setup() {
  size(200, 200);
  noLoop();
}

void draw() {
  line(10, 10, 190, 190);
}

№2

void setup() {
  size(200, 200);
}

float x = 0.0;

void draw() {
  background(204);
  x = x + 0.1;
  if (x > width) {
    x = 0;
  }
  line(x, 0, x, height); 
}

void mousePressed() {
  noLoop();
}

void mouseReleased() {
  loop();
}

№3

boolean someMode = false;

void setup() {
  noLoop();
}

void draw() {
  if (someMode) {
    // делаем что-нибудь
  }
}

void mousePressed() {
  someMode = true;
  redraw();  // или loop()
}

См.также

Внешние ссылки