Processing:Справочник языка Processing/noLoop(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Строка 14: Строка 14:
Останавливает непрерывный вызов функции [[Processing:Справочник языка Processing/draw()|draw()]]. Если вызывается функция [[Processing:Справочник языка Processing/loop()|loop()]], то возобновляется непрерывный вызов функции [[Processing:Справочник языка Processing/draw()|draw()]]. Если используется вызов функции noLoop() в теле функции [[Processing:Справочник языка Processing/setup()|setup()]], он должен быть последней строкой внутри блока.
Останавливает непрерывный вызов функции [[Processing:Справочник языка Processing/draw()|draw()]]. Если вызывается функция [[Processing:Справочник языка Processing/loop()|loop()]], то возобновляется непрерывный вызов функции [[Processing:Справочник языка Processing/draw()|draw()]]. Если используется вызов функции noLoop() в теле функции [[Processing:Справочник языка Processing/setup()|setup()]], он должен быть последней строкой внутри блока.


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


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

Версия от 19:39, 19 сентября 2023

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


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()
}

См.также

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