做过Flash播放器的朋友请进来!(20分)

  • 主题发起人 主题发起人 xlieryu
  • 开始时间 开始时间
X

xlieryu

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在另一个窗口里接着播放主窗体上的Flash文件?
我的程序大概是这样,主窗体上用一个ShockwaveFlash1控件播放Flash文件,我新建了另一个窗口,
想让刚才在主窗体里播放的flash文件在新建窗口里接着播放,但我试了很多次,新建窗口能显示出来,
但无论如何也不能播放Flash文件,不知道为什么。
下面是主要代码:
//调用新建窗口时停止主窗口的播放,并对新建窗口进行相关设置
ShockwaveFlash1.StopPlay;
Full.FullScreen.Visible:=true;

Full.FullScreen.ShockwaveFlash2.Movie:=ShockwaveFlash1.Movie;
Full.FullScreen.ShockwaveFlash2.GotoFrame(ShockwaveFlash1.FrameNum);
Full.FullScreen.ShockwaveFlash2.Play;
说明:Full是新建窗口的单元名,FullScreen是窗口名,ShockwaveFlash2为新建窗口上的flash控件,
ShockwaveFlash1为主窗口上的flash控件。
请各位帮忙了!
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1390383
 
好像不一样啊,
我的意思是在新建窗口里Flash完全没有显示出来。
 
仔细看里面的内容
 
Form1.ShockwaveFlash1.Movie:='1.swf';
Form1.ShockwaveFlash1.Play;
Form2.ShockwaveFlash1.Movie:='1.swf';
Form3.ShockwaveFlash1.Play;

 
把它的那几个属性都试一下,我一开始也是这样的,多放了一些它的方法,后来就好了呢
[:D]
 
你的处理过程错了,每个flash指定movie后都是
自动play的,必须先stop才能跳:(代码修改如下)
Full.FullScreen.ShockwaveFlash2.Movie:=ShockwaveFlash1.Movie;
[blue]Full.FullScreen.ShockwaveFlash2.Stop;[/blue] [red]//add by stlont[/red]
Full.FullScreen.ShockwaveFlash2.GotoFrame(ShockwaveFlash1.FrameNum);
Full.FullScreen.ShockwaveFlash2.Play;
 
老大,OCX有个毛病,你需要重新设置下焦点才可以的。
 
还是不行,我的代码现在是这样的,请大家帮我看看。
//通过SpeedButton1按钮来调用另一个全屏播放窗口
procedure TFlashPlayer.SpeedButton1Click(Sender: TObject);
begin

if ShockwaveFlash1.Playing=true then
begin
ShockwaveFlash1.StopPlay;
//当全屏播放时,原播放窗口暂停,需要这句吗?
Full.FullScreen.AutoScroll:=true;
Full.FullScreen.Visible:=true;
Full.FullScreen.ShockwaveFlash2.Movie:=ShockwaveFlash1.Movie;
Full.FullScreen.ShockwaveFlash2.Stop;
//加上了这句,先暂停,后跳。试了Full.FullScreen.ShockwaveFlash2.Stoping也不行。这两句有什么区别?
Full.FullScreen.ShockwaveFlash2.GotoFrame(ShockwaveFlash1.FrameNum);
Full.FullScreen.ShockwaveFlash2.Play;
end;
end;

现在的效果仍然是只能显示出全屏窗口,但就是不播放任何东西,到底要怎么办啊?
另外816朋友说“OCX有个毛病,你需要重新设置下焦点才可以的。”
不明白是什么意思,具体怎样设置,请帮我修改一下代码,谢谢了。
 
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
form2.sh1.Movie :=sh1.Movie;
form2.sh1.Play;
end;
可以的我试过了
 
提醒一句:
flash控件的movie属性一定要绝对路径。
你可这样作:
extractfilepath(appliction.exename)+'a.swf'
a.swf 和你的 程序在同个目录下即可
 
动态创建Flash控件,创建Form2时释放它
http://www.shenqiu.org/openfile/Download.asp?id=5
看看这个软件,我认为是最好的Flash播放器,可行作者不肯公布源码?
 
多人接受答案了。
 
后退
顶部