Delphi的 TShockwaveFlash 控件,播放flash时,怎样做到当窗口大小变化时,flash的大小相应变化?

解决方案 »

  1.   

    在FormResize事件里写代码控制Flash控件的大小
      

  2.   

    在flash背后放一充满的panel,form尺寸变化时,设flash的大小=panel的大小
      

  3.   

    //试试
    procedure TForm1.FormResize(Sender: TObject);
    begin
      ShockwaveFlash1.Enabled := False;
      ShockwaveFlash1.Enabled := True;
      ShockwaveFlash1.SetFocus
    end;
      

  4.   

    一般的做法是ShockwaveFlash1.Hide;
    ShockwaveFlash1.Show;
    ShockwaveFlash1.SetFocus;如果这样还不行就不知道了,这个确实是一个bug吧,delphi版本的就这样,网上也有很多人问过,你也可以查查以前的帖子
      

  5.   

    一般的做法是ShockwaveFlash1.Hide;
    ShockwaveFlash1.Show;
    ShockwaveFlash1.SetFocus;如果这样还不行就不知道了,这个确实是一个bug吧,delphi版本的就这样,网上也有很多人问过,你也可以查查以前的帖子
      

  6.   

    可以了实现大小变化,谢谢!
    但是如果.swf格式里面包含声音,关闭播放窗口,声音依然持续,需要关闭整个平台才能关闭声音。
      

  7.   

    procedure TForm1.FormResize(Sender: TObject);
    begin
      self.ActiveControl:=nil;
      self.ActiveControl:=ShockwaveFlash1;
    end;关闭前ShockwaveFlash1.Stop;
      

  8.   

    声音确实是个问题,有些swf文件视频和音频是分开的,这个目前还不知道怎么解决,可以试试把整个系统的音量降为0
      

  9.   

    有一个方法就是动态建立这个控件了var
      sf:TShockwaveFlash;
    begin
      sf:=TShockwaveFlash.Create(self);
      ......end;窗体关闭
      sf.Free;
      sf:=nil;看看可以不?