播放flash如何释放资源?(100分)

  • 主题发起人 主题发起人 海权论者
  • 开始时间 开始时间

海权论者

Unregistered / Unconfirmed
GUEST, unregistred user!
我参照《电脑报》第7期的文章编了个flash播放器,但是播放几个文件就会崩溃,因为文章
中没有介绍如何在关闭文件后释放资源,所以我猜这是造成这个现象的原因,不知应该如何
释放资源。另外,这个swflash.ocx控件中,如何得到正在播放的文件的当前的宽、高的值
?顺便问一下,这种ocx控件,如何查看它的属性、方法、事件?
 
属性,方法等到ShockwaveFlashObjects_TLB.pas看

flash.dpr

program flash;

uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
ShockwaveFlashObjects_TLB,
StdCtrls,
OleCtrls;

{$R *.res}

var
Bmp1:TBitmap;
ShockwaveFlash2: TShockwaveFlash;
// 声明变量

begin

Application.Initialize;
Application.Run;

Bmp1:=TBitmap.create;
ShockwaveFlash2:= TShockwaveFlash.CreateParented(GetDesktopWindow());
ShockwaveFlash2.LoadMovie(0,'c:/top.swf');
Bmp1.Width:=ShockwaveFlash2.width;
Bmp1.Height:=ShockwaveFlash2.Height;
ShockwaveFlash2.PaintTo(Bmp1.Canvas,0,0);
Bmp1.SaveToFile('c:/temp.bmp');

// Application.Initialize;
// Application.CreateForm(TForm1, Form1);
// Application.Run;
end.

 
你给的方法好像解决的是画面大小的问题,释放资源呢?
另外,可否作一点更详细的说明?我看得不大懂。
 
释放资源:
ShockwaveFlash2.Free;
 
这个早就试过,报错
 
那就用destroy。
 
不知你是如何用的?
我用swf ocx编的swf浏览器
播了无数个flash都没出过错
 
destroy一样报错。
不过很奇怪,现在播放多个却再没崩溃过。
最后请详细说明一下那段程序。
 
xusong168的程序是将装入的flash画面
截下来寸为一个bmp图形文件,可以用来
做预览画面用。
 
但是得到的图形都是一个15位的192X192的白色正方形
 
现在解决了!
 
后退
顶部