1、怎样判断一个Flash播放完毕?本人用的以下代码,但不能实现。
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      if ShockwaveFlash1.CurrentFrame = ShockwaveFlash1.TotalFrames
       then .......
    end;
  2、怎样控制一个Flash循环播放(可以控制循环与不循环)?
  3、怎样和swf关联?即打开swf文件就用该播放器播放。

解决方案 »

  1.   

    1.控件有个isplaying属性,可以判断这个属性
    2.加一个变量判断是否要循环,当flash结束的时候判
      if not shockwaveflash1.isplaying then
      begin
          if xunhuan then//需要循环
              shockwaveflash.play;
      end;
    3.不知道
      

  2.   

    3.改注册表,HKEY_CLASSES_ROOT\SwfFile\Shell\Open\command下改为你播放器路径就可以了
      

  3.   

    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 - 背景色,red*65536+green*256+blue,-1为默认颜色。Loop - 是否循环//Here
      

  4.   

    第3个问题
      procedure TFrm_Main.FormCreate(Sender: TObject);
      var skinpath:string;
      begin
        skinpath:=ExtractFilePath(Application.ExeName);
        Flash1.LoadMovie(0,SkinPath+'***.swf');
        Flash1.Play;
      end;