Processing:Библиотеки/Video/Обработчики событий/movieEvent()
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Среда разработки 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();
}
}