还是shockwaveflash控件问题!!谢谢,望回复!(0分)

  • 主题发起人 chinavane
  • 开始时间
C

chinavane

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我后面的两个功能:总帧数、那一帧开始播放实现不了呢?
编译的时候总提示我变量totalframes、SpinEdit1.Value有问题。
我刚接触delphi,以前搞Flash,想用delphi先做个Flash播放器玩玩先,不知高手可否指明一下问题之所在?
望回复,谢谢!

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,你即可实现该功能。


if ShockwaveFlash1.playing then
ShockwaveFlash1.GotoFrame(SpinEdit1.Value);
ShockwaveFlash1.Play;
我将gotoFrame改成了GotoFrame(StrtoInt(edit1.text))就好了,但是前面一个totalframes的问题帮忙看看怎么回事呀?谢谢呀!


 
奇怪。
我刷新后,你的问题以对话框的形式弹出来。
是系统的问题还是你怎样做到的?

没用过这个控件。
 
label1.caption:=shockwaveflash.totalframes;这一句应该加到Form的ButtonClick中去!
 
[Error] Unit1.pas(98): Incompatible types: 'String' and 'Integer'

其实放哪是一样的!:)

label1.caption:=shockwaveflash.totalframes;

中的shockwaveflash我认为应该是shockwaveflash1,但是就出现上面的错误信息…!
 
Delphi6.0下测试通过! 需要TShokewaveFlash控件!

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB, ComCtrls,
ExtCtrls, Menus, DIRECTORSHOCKWAVELib_TLB;
type
TForm1 = class(TForm)
ShockwaveFlash1: TShockwaveFlash;
Button1: TButton;
Button2: TButton;
Pro: TProgressBar;
Timer1: TTimer;
Label1: TLabel;
OpenDialog1: TOpenDialog;
Button4: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text = '' then
Exit
else
ShockwaveFlash1.Movie:=edit1.Text;
ShockwaveFlash1.Play;
Timer1.Enabled :=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ShockwaveFlash1.Stop;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
pro.Max:= ShockwaveFlash1.TotalFrames
pro.Position :=ShockwaveFlash1.CurrentFrame;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled :=false;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
OpenDialog1.Execute;
Edit1.Text :=OpenDialog1.FileName;
end;

end.
 
谢谢YB_unique!我去试了,已经成功!但是想不明白,按原理应该说label1.caption:=shockwaveflash1.totalframes;是可以成功的呀?嘻嘻!谢谢了!^-^
 
顶部