Processing:Библиотеки/Video/Обработчики событий/movieEvent()

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


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



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

См.также

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