怎么实现把FLASH作为软件的启动界面?急!在线等! (50分)

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

chiefwang

Unregistered / Unconfirmed
GUEST, unregistred user!
想实现FLASH作为软件的启动界面?就是在FLASH播放完后就自动进入软件主界面。那位高手指教指教!!不胜感激!
 
怎么没有人回答呢?
应该不是很难吧?我看过不少这样的软件的!
 
加在一个窗体中执行时要判断文件帧播放进度,结束后调用主窗体~
 
是用来作软件的安装封面吧!
 
不是的,就是在软件运行的时候出现,就象WIN2000系统进入时那种。还有就是在主界面出现后,启动界面回会关闭,释放资源。不知行不?
我做的软件还没有封装的。
 
找一个可以播放FLASH的三方控件,装上不就可以实现了吗?
在Delphi里播放Flash
(姚佩云 2001年09月21日 15:35)
在Flash大行其道的今天,是否想过在你的程序里也加入几幅Flash动画炫一炫呢?OK,心动不如行动,让我们现在就开始吧!
首先,你的机器里要装有Flash播放软件(你的IE能显示Flash)。IE之所以能显示Flash是安装了由Macromedia公司提供的swflash.ocx控件,我们可以在Win98的$Windows/System/Macromed /Flash中或在Win2000中的$Winnt/System32/ Macromed/Flash中找到它。ActiveX控件在Windows里是通用的,Delphi也同样支持。
运行Delphi后,选择选单Component→Import ActiveX Control,找到SWFlash.OCX 文件进行安装。安装完成后,ActiveX面板里出现TShockwaveFlash控件,这是Delphi对SWFlash.OCX的封装,现在我们就可以用这个控件来播放Flash了。拖一个Flash过来,放在Form上,指定其Movie属性为d:/test.SWF,并按F9键加以运行即可。怎么样,运行效果不错吧?下面,笔者将具体介绍TShockwaveFlash主要属性、方法和事件,以便于读者开发。
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:背景色,-1为默认颜色;
Loop:是否循环;
Movie:指定播放的flash文件路径,可以为一个URL。
TShockwaveFlash主要方法如下:
Play():开始播放动画;
Stop();停止播放动画;
Back();播放前一帧动画;
Forward():播放后一帧动画;
Rewind():播放第一帧动画;
SetZoomRect(int left, int top, int right, int bottom):设置缩放的区域;
Zoom(int percent):按百分比缩放;
Pan(int x, int y, int mode):缩放播放面板,其中模式0为按像数、1为按窗口百分比。
TShockwaveFlash主要事件如下:
OnProgress(int percent):读取一个flash时触发;
OnReadyStateChange(int state):状态改变时触发。states的值可以为0=Loading、1=Uninitialized、2=Loaded、3=Interactive和4=Complete。
 
播放FLASH我会,也做了。可是我想做个启动界面,上面播放FLASH,最好全屏显示出来。这样在软件启动的时候就可以有眩一点的效果!
 
那不是一样吗?启动界面实际就是一个窗口,把flase放在窗口就行了。
 
谢谢指教。可怎么实现全屏啊?还有就是控制它的播放时间和主窗口的自动弹出?
 
我有一个很小的flash测试的demo,用c++bulid做的,你要的话,就留email吧
 
就是安一个Flash播放控件。全屏时可以将Form放大,Flash 的播放区域占据Form的全部空间。当然,Form是无标题条的。用完后将此Form Free 掉。
 
有个问题就是怎么实现启动界面的自动释放,然后调动主界面?
比如当启动界面出现3秒后就关闭释放,主界面开始运行。好象看过有书上说,不能使用Application.CreatForm()来创建启动窗口,而应在initialization部分来创建和显示,因为那样delphi就不会把启动界面看作是一个应用程序的窗口,而initialization部分来创建的总是在主程序之前执行的。
可是当我开始时出现当我为启动窗口设置显示时间时,代码不可用。不知为何!
代码大概如下:
begin

Application.Initialize;
form2:=TForm2.creat(Form2);//创建启动画面窗口
form2.show;//显示启动画面窗口
form2.Update;
Application.CreatForm(TForm1,Form1);//创建工程窗口
Application.CreatForm(TForm3,Form3);
Sleep(1000);//启动窗口显示一秒[red](提示出错,无法辨认Sleep)[/red]
form2.hide;//隐藏启动画面窗口
form2.free;//释放启动界面窗口
Application.run;//运行工程
end.
错误是怎么回事呢?难道Delphi7不支持该语句?
真的搞不懂!希望各位快快帮忙看看,不胜感激!
 
sleep是api函数,你可能没有use shellapi单元。
另外,用TWEBBROSWER就可以显示FLASH。
 
iseek,你能不能讲详细点?怎么实现use shellapi?先谢了!
 
program Project1;
uses
Forms,ShellApi,//加在这里======================
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin

Application.Initialize;
form2:=TForm2.creat(Form2);//创建启动画面窗口
form2.show;//显示启动画面窗口
form2.Update;
Application.CreatForm(TForm1,Form1);//创建工程窗口
Application.CreatForm(TForm3,Form3);
Sleep(1000);//启动窗口显示一秒[red](提示出错,无法辨认Sleep)[/red]
form2.hide;//隐藏启动画面窗口
form2.free;//释放启动界面窗口
Application.run;//运行工程
end.
 
谢谢!在ISEEK所说的地方加上“windows,"后搞定了!
谢谢各位!
 
分发错了!!不好意思各位。下次我补上,特别是iseek,非常抱歉!
 

Similar threads

D
回复
0
查看
737
DelphiTeacher的专栏
D
D
回复
0
查看
681
DelphiTeacher的专栏
D
D
回复
0
查看
629
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部