在delphi中可以直接開啟flash動畫,並控制它播放和停止,還可以得到它的總幀數。

具體操作步驟:①Component -> Import ActiveX Contrals -> Shockwave Flash -> into new package下一步下一步完成。

       ②在控制元件條的ActiveX下發現一個新的控制元件,名字為ShokewaveFlash。

示例如圖所示:

程式碼如下:

 unit Unit1;

 interface

 uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleCtrls,
ShockwaveFlashObjects_TLB; type
TForm1 = class(TForm)
ShockwaveFlash1: TShockwaveFlash;
OpenDialog1: TOpenDialog;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Label1: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} PRocedure TForm1.Button1Click(Sender: TObject); //開啟Flash
begin
if OpenDialog1.Execute then
ShockwaveFlash1.Movie:= OpenDialog1.FileName;
ShockwaveFlash1.StopPlay;
end; procedure TForm1.Button2Click(Sender: TObject); //播放Flash
begin
ShockwaveFlash1.Play;
end; procedure TForm1.Button3Click(Sender: TObject); //暫停Flash
begin
ShockwaveFlash1.StopPlay;
end; procedure TForm1.Button4Click(Sender: TObject); //關閉Flash
begin
ShockwaveFlash1.FreeOnRelease;
close;
end; procedure TForm1.Button5Click(Sender: TObject); //獲取Flash總幀數
begin
label1.caption:= IntToStr(shockwaveflash1.totalframes );
end; procedure TForm1.Button6Click(Sender: TObject); //從Flash某一幀開始播放
begin
if ShockwaveFlash1.playing then
ShockwaveFlash1.GotoFrame(StrToInt(Edit1.Text));
ShockwaveFlash1.Play;
end; end.