我思故我在我有我精彩--liangqihui

爱欲追而情已逝,子欲孝而亲不待。人生的困苦又怎能用一个难字囊尽百味
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在Delphi里播放Flash动画

Posted on 2005-05-19 16:21  挥辉  阅读(1561)  评论(0编辑  收藏  举报

在Delphi里播放Flash动画

  在Flash大行其道的今天,在你的程序里也加入几幅Flash动画因该会不错吧,为了小小的虚荣,了解一下呵呵 
  首先,机器装个Flash播放插件(IE能显示Flash)。IE之所以能显示Flash是安装了由Macromedia公司提供的ocx控件,我们可以在Win98的SystemMacromed Flash中或在Win2000中的System32 MacromedFlash中找到它。ActiveX控件在Windows里是通用的,Delphi也同样支持。

  运行Delphi后,选择选单Component→Import ActiveX Control,找到SWFlash.OCX 文件进行安装。安装完成后,ActiveX面板里出现TShockwaveFlash控件,这是Delphi对SWFlash.OCX的封装,现在我们就可以用这个控件来播放Flash了。拖一个Flash过来,放在Form上,指定其Movie属性为'path\'+'*.SWF';

        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。

综合应用:
在FLASH中设置按钮动作

  在FLASH中定义一个按钮,打开对象动作面板(例如按纽),点击Fscommand动作,Fscommand动作自动加入在on(release{}之中。Fscommand动作可用于传递信息给Delphi,其参数设定为:

  command(命令):'自定义字串'
  Arguments(参数) :可根据需要选择,可以不设置

  在编辑窗口显示如下:

on(release){
 fscomman(“自定义字串”);
}


  b) 在Delphi中该OLE控件的“fscommand(string command ,string args)”事件中编程

if command='自定义字' then
  open(w_picture);//调用事件
end