显示一个GIF动画
procedure ShowGIF( GIFFileName : String ); var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : widestring; begin TargetFrameName := '';{指定Frame的空字符串时,则在当前Frame中打开动画文件} PostData := false;{不发送数据} Heads := '';{Header信息为空} Flags := 0;{Flags设为0} URL := GIFFileName; with formGIF.webbrowser do{在指定窗口中的IE浏览器控件中显示动画} begin navigate(URL,Flags,TargetFrameName,PostData,Heads);{显示动画文件} end; end;
播放Flash 首先,你的机器里要装有 Flash 播放软件(你的 IE 能显示 Flash )。IE 之所以能显示 Flash 是安装了由 Macromedia 公司提供的 swflash.ocx 控件,我们可以在Win98 的 $Windows\System\Macromed\Flash 中或在 Win2000 中的 $Winnt\System32\ Macromed\Flash 中找到它。ActiveX 控件在 Windows 里是通用的,Delphi也同样支持。
运行 Delphi 后,选择选单Component→Import ActiveX Control,找到SWFlash.OCX 文件进行安装。安装完成后,ActiveX 面板里出现 TShockwaveFlash控件,这是Delphi对SWFlash.OCX 的封装,现在我们就可以用这个控件来播放 Flash 了。拖一个 Flash 过来,放在 Form 上,指定其 Movie 属性为 d:\test.SWF,并按 F9 键加以运行即可。怎么样,运行效果不错吧?
下面,笔者将具体介绍TShockwaveFlash主要属性、方法和事件,以便于读者开发。
TShockwaveFlash主要属性如下:
ReadyState:读一个flash文件时的状态,其中包括0=Loading、1=Uninitialized、2=Loaded、3=Interactive和4=Complete; TotalFrames:总帧数,只有当ReadyState = 4时才能访问该属性; FrameNum:当前播放的帧; Playing:播放或暂停一个flash; Quality:指定当前渲染的质量,包括0=Low, 1=High、2=AutoLow、3=AutoHigh; ScaleMode:缩放模式,0=ShowAll、1= NoBorder、2 = ExactFit; AlignMode:对齐模式,Left=+1、Right=+2、Top=+4、Bottom=+8; BackgroundColor:背景色,-1为默认颜色; Loop:是否循环; Movie:指定播放的flash文件路径,可以为一个URL。
TShockwaveFlash主要方法如下:
Play():开始播放动画; Stop();停止播放动画; Back();播放前一帧动画; Forward():播放后一帧动画; Rewind():播放第一帧动画; SetZoomRect(int left, int top, int right, int bottom):设置缩放的区域; Zoom(int percent):按百分比缩放; Pan(int x, int y,int mode):缩放播放面板,其中模式0为按像数、1为按窗口百分比。
TShockwaveFlash主要事件如下:
OnProgress(int percent):读取一个flash时触发; OnReadyStateChange(int state):状态改变时触发。states的值可以为0=Loading、1=Uninitialized、2=Loaded、3=Interactive和4=Complete