Processing:Библиотеки/Video/Обработчики событий/movieEvent(): различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 10: | Строка 10: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
movieEvent() | movieEvent() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 22: | Строка 22: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
void movieEvent(Movie which) { | void movieEvent(Movie which) { | ||
statements | statements | ||
Строка 30: | Строка 30: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
statements – какой-либо код, который надо запустить | statements – какой-либо код, который надо запустить | ||
which – видео, запустившее событие | which – видео, запустившее событие | ||
Строка 37: | Строка 37: | ||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 45: | Строка 45: | ||
===№1=== | ===№1=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
import processing.video.*; | import processing.video.*; | ||
Movie myMovie; | Movie myMovie; | ||
Строка 68: | Строка 68: | ||
===№2=== | ===№2=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
import processing.video.*; | import processing.video.*; | ||
Версия от 18:13, 14 мая 2023
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
![]() |
Черновик |
movieEvent()[1]
Обозначение
movieEvent()
Описание
Это функция события, и она вызывается, когда становится доступен новый кадр видео. Для считывания этого кадра используйте функцию read(). Если в программе больше одного видео, movieEvent() будет вызываться всякий раз, когда у какого-либо из этих видео будет доступен новый кадр. Чтобы определить, какое видео запустило событие, используйте оператор if(). Как применить это на практике, смотрите в примере 2 ниже.
Это функция для тех, кто хочет, чтобы в их коде кадры обрабатывались отдельно от рисования (и как можно быстрее). Рисовать на экране внутри функции movieEvent() нельзя. Поэтому, если вы хотите нарисовать что-либо сразу после того, как будет доступен новый кадр, используйте функцию Movie.available().
Синтаксис
void movieEvent(Movie which) {
statements
}
Параметры
statements – какой-либо код, который надо запустить
which – видео, запустившее событие
Возвращаемое значение
Пример
№1
import processing.video.*;
Movie myMovie;
void setup() {
size(200, 200);
myMovie = new Movie(this, "totoro.mov");
myMovie.loop();
}
void draw() {
image(myMovie, 0, 0);
}
// вызывается каждый раз,
// когда у видео становится доступен для считывания новый кадр:
void movieEvent(Movie m) {
m.read();
}
№2
import processing.video.*;
Movie myMovie, yourMovie;
void setup() {
size(200, 200);
myMovie = new Movie(this, "totoro.mov");
yourMovie = new Movie(this, "catbus.mov");
myMovie.play();
yourMovie.play();
}
void draw() {
image(myMovie, 0, 0);
image(yourMovie, 100, 0);
}
// вызывается каждый раз, когда у видео доступен новый кадр;
// внутри функции с помощью if() проверяется, у какого именно видео
// ("totoro.mov" или "catbus.mov") появился новый кадр:
void movieEvent(Movie m) {
if (m == myMovie) {
myMovie.read();
} else if (m == yourMovie) {
yourMovie.read();
}
}