Flash в Delphi

Источник: codingclub

Многие программисты забывают, про такую замечательную вещь, как Flash. Разработчики пытаются украсить свое творение, с помощью многочисленных GIF анимаций, которые существенно тормозят приложение. А ведь можно очень легко наполнить свое приложение потрясающими эффектами, при этом они будут занимать минимум места. Да, я сейчас говорю именно про интеграцию всеми любимых flash роликов в ваше приложение.

Оказывается сделать это очень легко. Все что вам нужно - это установленный flash проигрыватель от компании Macromedia. Если у вас флэшки проигрываются без проблем, то можете считать, что он у вас установлен.

Для того чтобы работать с Flash в Delphi, вам необходимо установить дополнительный компонент TShockwaveFlash. Сделать это легко. Запустите Delphi и выберите пункт меню Component->Import ActiveX Control... Перед вами откроется диалоговое окно с заголовком Import ActiveX. В списке выберите Shockwave Flash. В разделе Pallete Page... Выберите страницу в палитре компонентов, на которой будет располагаться установленный компонент (по умолчанию это ActiveX). В разделе Unit Dir Name... путь к папке куда будет установлен компонент (можно оставить текущий).

Нажмите на кнопку Install. Перед вами появится окно, в котором вам нужно будет выбрать в какой пакет будет установлен компонент (вы можете установить как в уже существующий, так и в новый пакет. Я выбрал первый вариант.). Затем перед вами появится окно редактирования выбранного пакета и Delphi вас спросит: ′...Package will be rebuilt. Continue?′. Ответьте Yes. Все готово теперь можно использовать флэш в ваших приложениях.

Для того чтобы обзор данной возможности был наиболее полным объясню, как работать с компонентом TShockwaveFlash.

Первым делом необходимо перетащить этот объект с установленной вкладки (ActiveX по умолчанию) на формы. Свойство Playing установите в false.

У объекта TShockwaveFlash есть два важных метода: Play и Stop. Их можно вызвать так:

TShockwaveFlash.Play
TShockwaveFlash.Stop

С их помощью можно запускать и останавливать flash-ролики. По задумке разработчиков по команде TShockwaveFlash.Play ролик должен начать воспроизводиться, но у меня почему-то воспроизвелся первый кадр и ролик остановился.

Проблема была решена следующим способом. На форму был брошен компонент Timer со вкладки System. Свойство Interval установлено равным 1. И по событию onTimer производился оператор TShockwaveFlash.Play

procedure TForm1.Timer1Timer(Sender: TObject);
begin
flash1.Play;
end;

Вот так. осталось передать компоненту TShockwaveFlash имя flash-ролика, для его дальнейшего воспроизведения. за имя файла отвечает свойство Movie. лучше всего это сделать так. Кинуть на форму кнопку и OpenDialog со вкладки Dialogs. После чего создать обработчик события onClick кнопки.

procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
flash1.Movie := opendialog1.FileName;
end;
end;

Есть у TShockwaveFlash и еще один важный метод GotoFrame. С помощью него можно переходить на определенный кадр ролика. А в свойстве TotalFrames хранится полное количество кадров. Обобщив все это можно легко реализовать прокрутку роликов при помощь объекта TrackBar.

На этом все. Надеюсь, что с остальными свойствами и методами компонента TShockwaveFlash ты разберешься сам. Надеюсь, что ты сможешь правильно воспользоваться этой возможностью и твои приложения заблистают и приобретут новый вид. Удачи!


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=2479