转载:在delphi中使用flash控件 
---- 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,你即可实现该功能。 
---- 怎么样,试试吧,效果还不错吧。 

解决方案 »

  1.   

    转载!不过上次原作者                       delphi里播放flash
        在flash大行其道的今天,是否想过在你的程序里也加入几幅flash炫一炫?我们就来试试,前提
    是你要装有flash播放软件(你的IE能显示flash),IE之所以能显示flash是安装了一个swflash.ocx
    控件,由Macromedia, Inc.提供,我们也用它了,win98在$Windows\System\Macromed\Flash,win2k
    在$Winnt\System32\Macromed\Flash下。ActiveX控件在windows里是通用的,delphi当然也支持,打
    开你的delphi我们开始了。选择菜单Component --> Import ActiveX Control,选择SWFlash.OCX 文
    件,安装,完成后在ActiveX面板里出现TShockwaveFlash控件,这是delphi对SWFlash.OCX的封装,现
    在我们就可以用这个控件来播放flash了。拖一个过来放在form上,指定其Movie属性为d:\test.SWF,
    按F9,一切OK。delphi编程就是这么轻松、自在。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=AutoHighScaleMode - 缩放模式,0=ShowAll, 1= NoBorder, 2 = ExactFit。AlignMode - 对齐模式,Left=+1, Right=+2, Top=+4, Bottom=+8。BackgroundColor - 背景色,red*65536+green*256+blue,-1为默认颜色。Loop - 是否循环。Movie - 指定播放的flash文件路径,可以为一个URL.方法:
    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-按窗口百分比事件:
    OnProgress(int percent) - 读取一个flash时触发。OnReadyStateChange(int state) - 状态改变时触发。states 可以为 0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete。具体帮助请参见http://www.macromedia.com/support/flash/
    此为本人心血来潮之作,不足之处恳请指正,欢迎有兴趣者共同探讨([email protected])。