Анимация AVI, или Хотим фильму!

Анимация — это набор статических картинок (кадров), которые последовательно отображаются через заданные промежутки времени.

Задача урока

  • Работа с компонентом Animate.

Выполнение упражнения

В этом упражнении мы создадим приложение, проигрывающее видеофайл формата AVI (рисунок 1) при помощи компонента — Animate. Кроме того, анимационные вставки можно применять в приложениях для эстетического вида.

Рисунок 1. Окно приложения

1. Дизайн приложения

Расположите компоненты, как показано на рисунке 2а, и измените значения их свойств, согласно рисунку 2б. В левом верхнем углу расположен компонент Animate  (вкладка Win32).

 а)  б)

Рисунок 2

Внешне, на этапе разработки, компонент Animate похож на Image. Отличие состоит в том, что Animate воспроизводит анимацию, записанную в несжатом формате AVI.

Кнопка «Пуск» служит для запуска фильма, а «Стоп» — для остановки. Метка служит для отображения количества кадров в файле анимации и размера кадров.

2. Запускаем анимацию

1. Создайте обработчик события OnClick для кнопки «Пуск» и запишите в нём следующий код:

Procedure TForm1.ButtonStartClick(Sender: TObject);
begin

  Animate.Active := True;

end;
Листинг 1

Метод Active типа Boolean компонента Animate отвечает за то, запущена анимация либо нет. Если Active:= True, значит анимация запущена, если Active:= False, то нет.

2. Создайте обработчик события OnClick для кнопки «Стоп» и запишите в нём следующие строки:

procedure TForm1.ButtonStopClick(Sender: TObject);
begin

  Form1.Animate.Active := False;

end;
Листинг 2

Теперь мы можем запускать и останавливать проигрывание видеоклипа. Осталось только одно но… Где сам видеоклип? В папке «Обеспечение» лежат два видеоклипа: «delph.avi» и «Bart.avi».

3. Скопируйте файл «delph.avi» в папку с вашим проектом.

4. Для того чтобы видеоклип открывался сразу же после запуска приложения, создайте обработчик события OnCreate для формы и запишите в нём следующий код:

procedure TForm1.FormCreate(Sender: TObject);
begin

  // Указываем файл анимации
  animate.FileName := 'delph.avi';
  // Выводим число кадров в анимации, их высоту и ширину
  labelOut.Caption := 'Число кадров: ' + inttostr(Animate.FrameCount)  +
                      ', Высота: '     + inttostr(Animate.FrameHeight) +
                      ', Ширина: '     + inttostr(Animate.FrameWidth);

end;
Листинг 3

Поясним код:

  • через свойство FileName компонента Animate указываем имя файла анимации. После этого в компоненте отображается первый кадр;
  • свойства компонента AnimateFrameCountFrameHeight и FrameWidth хранят число кадров, ширину и высоту кадров соответственно.

5. Запустите уже готовый проект. Сразу же после запуска компонент Animate отобразит первый кадр файла AVI, а метка покажет число кадров анимации, ширину и высоту кадров.

Нажмите на кнопку «Пуск», и анимация «оживёт».

3. Коротко о главном

Анимация — это набор статических картинок (кадров), которые последовательно отображаются через заданные промежутки времени.

Компонент Animate  (вкладка Win32) предназначен для отображения несжатых файлов анимации формата AVI.

Метод Active типа Boolean компонента Animate отвечает за то, запущена анимация либо нет.

Через свойство FileName компонента Animate указывается имя файла анимации. После этого в компоненте отображается первый кадр.

Свойства компонента Animate: FrameCountFrameHeight и FrameWidth хранят число кадров, ширину и высоту кадров соответственно.

4. Выполнение заданий

Задания I уровня сложности

1. Создайте приложение с функцией открытия файлов формата AVI с помощью компонента стандартного диалога открытия файлов. За основу возьмите приложение, выполненное в этом уроке.

Задания II уровня сложности

1. Создайте приложение, состоящее из 5 компонентов Animate. В каждый компонент загружается файл «delph.avi». Далее эти компоненты работают как гирлянда: запускается 1-я анимация, работает 3 сек., останавливается, запускается 2-я анимация и т. д. Результат работы приложения показан на рисунке: