求播放flash动画的源码,100分相送!!! (100分)

  • 主题发起人 主题发起人 gzyhp
  • 开始时间 开始时间
G

gzyhp

Unregistered / Unconfirmed
GUEST, unregistred user!
最好各种版本的代码均有!
 
用 OCX 控件吧,Flash 生成的动画都是可以加密的,除非 Macromedia 公开文
件格式,否则不大可能有播放的源码
 
来这里看看吧!
http://www.delphibbs.com/bukoo
 
yysun的大作看来宣传力度不够
 
安装了Flash过后就可以在Delphi里面安装一个ocx用以播放flash文件,yysun好象说过
 
装ocx 控件.在import activex control 选中shock wareflash 然后install 这样一个新控件
shockewaveflash 产生.shockwaveflash.movie:=文件名 shockvaveflash1.play 为播放.
 
到URL http://www.openswf.org/flashsdk.zip 下载sdk
 
请看下文

FLASH是Macromedia公司出品的,用在互联网上动态的、可互动的shockwave。它的优点是体积小,可边下载边播放,这样就避免了用户长时间的等待。
---- FLASH可以用其生成动画,还可在网页中加入声音。这样你就能生成多媒体的图形和界面,而使文件的体积却很小。

---- FLASH虽然不可以象一门语言一样进行编程,但用其内置的语句并结合JAVASCRIPE,您也可作出互动性很强的主页来。

---- FLASH另外一个特点就是必须安装插件PLUG-IN,才能被浏览器所接受!当然这也避免了浏览器之间的差异,使之一视同仁!

---- 但是你知道吗?在delphi中可以直接打开flash动画,并控制它播放和停止。你还可以得到它的总帧数,知道怎么实现的吗?请跟我来。

---- 在delphi中的Component|Import ActiveX Contrals...中选中 "Shockwave Flash(Version 1.0)",并单击Install,会出现一个install窗口。

---- 如果要把它添加到一个已经存在的包中,在"into existing package"对话框中的"File name:"窗口中选择你想安装的路径,并单击"OK";会弹出一个确认的对话框,它问你"Package dclusr50.bpl will be rebuilt. Continue?",单击"Yes";在弹出的窗口中单击击"install",该插件就安装完毕。

---- 如果要把它添加到一个新建的包中,在"into new package"对话框中的 "File name:"窗口中选择你想安装的路径,并新建一个包,假如命名为test,并单击"OK";它问你"Package test.bpl will be built. Continue?",单击"Yes"。 在弹出的窗口中单击击"install",该插件就安装完毕。

---- 这时,你会在控件条的ActiveX下发现一个新的控件,名字为ShokewaveFlash, 单击它把它放在form中,在该form中放一个OpenDialog控件和一个panel,在该panel上放四个button,他们的caption属性分别命名为"Openfile","Play","Stop","Close".设置panel1,ShockwaveFlash的Align 属性分别为Alleft 和AlClient;
分别在这四个Button的OnClick事件中写下如下代码:

procedure TForm1.Button1Click(Sender: TObject);
begin

if OpenDialog1.Execute then

ShockwaveFlash1.Movie:=
OpenDialog1.FileName;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin

ShockwaveFlash1.Play;
end;


procedure TForm1.Button3Click(Sender: TObject);
begin

ShockwaveFlash1.StopPlay;
end;


procedure TForm1.Button4Click(Sender: TObject);
begin

ShockwaveFlash1.FreeOnRelease;
close;
end;

---- 你可以得到打开的flash图像的总帧数,在panel1上添加一个label,在form1的OnClick事件中写下如下代码

procedure TForm1.FormCreate(Sender: TObject);
begin

label1.caption:=shockwaveflash.totalframes;
end;


你还可以控制该打开的flash图像从那一帧开始播放,
在panel1上添加一个button和一个Edit控件,

在该button的OnClick事件中添加如下代码。
if ShockwaveFlash1.playing then

ShockwaveFlash1.GotoFrame(SpinEdit1.Value);
ShockwaveFlash1.Play;
---- 在edit中填上你想跳到的帧,并单击该button,你即可实现该功能。

---- 怎么样,试试吧,效果还不错吧。



 
很简单,Flash的安装目录就有一个Player的目录,里边有个包,其实是一个Activex控件,把它解压后让delphi去importActive新就行了。
 
楼上的2位已经讲得很清楚了
 
Delphi6.0下测试通过! 需要TShokewaveFlash控件!

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB, ComCtrls,
ExtCtrls, Menus, DIRECTORSHOCKWAVELib_TLB;
type
TForm1 = class(TForm)
ShockwaveFlash1: TShockwaveFlash;
Button1: TButton;
Button2: TButton;
Pro: TProgressBar;
Timer1: TTimer;
Label1: TLabel;
OpenDialog1: TOpenDialog;
Button4: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

if edit1.Text = '' then

Exit
else

ShockwaveFlash1.Movie:=edit1.Text;
ShockwaveFlash1.Play;
Timer1.Enabled :=true;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin

ShockwaveFlash1.Stop;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin

pro.Max:= ShockwaveFlash1.TotalFrames
pro.Position :=ShockwaveFlash1.CurrentFrame;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin

Timer1.Enabled :=false;
end;


procedure TForm1.Button4Click(Sender: TObject);
begin

OpenDialog1.Execute;
Edit1.Text :=OpenDialog1.FileName;
end;


end.
 
多人接受答案了。
 
后退
顶部