Flash动画播放系统文档(20044345)王金龙
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
石河子大学信息科学与技术学院Flash动画播放系统
详细说明书
姓名:王金龙
学号:
专业:信息管理与信息系统
班级: 2004级2班
目录
1 引言 (1)
1.1 编写目的 (1)
1.2 背景 (1)
1.3 定义 (1)
1.4 参考资料 (1)
2 程序系统的结构 (2)
3 程序1(标识符)设计说明 (2)
3.1 程序描述 (2)
3.2 功能 (2)
3.3 性能 (2)
3.4 详细步骤 (2)
(2)
(3)
Flash文件的播放、暂停和停止 (4)
(6)
(6)
3.5 限制条件 (6)
3.6 测试计划 (6)
3.7 尚未解决的问题 (6)
4 程序2(标识符)设计说明 (6)
1 引言
1.1 编写目的
Flash是Macromedia公司出品的网页动画和多媒体制作工具,这个矢量格式的网页制作工具自推出以来,受到了广泛的欢迎和应用,成了时下最流行的网络娱乐工具。
然而我总是不甘心局限于使用Flash5自带的播放器,总想自己能够DIY一个自己喜欢的Flash播放器。
其实这个想法并不难实现,只需要在Delphi 中调用ActiveX控件即可。
1.2 背景
说明:
Flash动画播放系统
a.提出者:王金龙开发者:王金龙
b.用户:大众群体单位:石河子大学信息科学与技术学院学生1.3 定义
ReadyState:读一个Flash文件时的状态FrameNum:当前播放的帧Loop:shif:是否循环Play:开始播放动画
Stop:停止播放动画zoom:缩放
OnProgress:读取一个Flash时触发
OnFSCommand:可用来读取Flash按钮中的参数
1.4 参考资料
列出要用到的参考资料:
Delphi系统开发实力精粹
Delphi系统开发经典案例
2 程序系统的结构
3 程序1(标识符)设计说明
3.1 程序描述
本程序是由个人编写的小软件,主要目的想自己DIY 一个视频播放软件,能简单飞播放Flash 文件等。
3.2 功能
主要功能有添加文件,播放文件,暂停和停止文件,切换文件等简单操作。
3.3 性能
能比较方便快捷的打开执行Flash 文件的播放操作。
3.4 详细步骤
这个程序就是通过调用ShockwaveFlash 组件,实现在Delphi 中播放Flash 动画。
运行界面如下:
精华在于在Delphi 中使用Active 空间技术。
在Delphi中使用Active控件
Delphi中带有一些预安装的ActiveX控件,而网络上也有很多功能丰富的第三方控件。
下面以ShockwaveFlash组件为例,介绍ActiveX控件事如何工作的。
SWFlash.ocx是ActiveX控件,里面包含了本例调用的ShockwaveFlash组件。
首先在IE中自动播放Flash动画的SWFlash.ocx,或者在计算机中装好带有Flash 播放功能的软件。
这样SWFlash.ocx就自动安装在系统中了。
该控件在Windows2000/XP的$Windows\System32\Macromed\Flash目录下。
替换Flash弹出菜单
在播放Flash时,单击右键,将弹出Flash自带的系统菜单,包括放大、缩小等操作,有时侯会觉得这种菜单与自己的应用程序风格不是很匹配,那有没有方法可以将这种菜单屏蔽掉或者替换成自定义的菜单呢?答案是有的。
通过截获用户右键单击Flash播放区域消息,就可以实现上述功能。
先定义一个消息处理过程:
procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
在这个过程中,先判断消息是否为右键单击Flash播放区域:
if (Msg.message = WM_RBUTTONDOWN) and (windowfrompoint(Mouse.CursorPos)=ShockwaveFlash1.handle) then begin
{处理过程}
end;
如果是,那么可以选择屏蔽系统菜单;
{处理过程为:}Handled :=True
也可以选择替换成自定义菜单;
{处理过程为:}
popupmenu1.Popup(Mouse.CursorPos.X, ;
Handled := True;
了解了上述组件的用法后,就可以开始编写Flash动画播放器了。
其设计期界面图下图所示:
选择新的Flash文件
下面的代码用来实现选择新的Flash文件进行播放。
procedure TForm1.SpeedButton(Sender: Tobject);
begin
//……省略部分代码
end;
Flash文件的播放、暂停和停止
下面的代码用来实现Flash文件的播放那个、暂停和停止功能。
begin
//播放
ShockwaveFlash1.Play;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
//暂停
ShockwaveFlash1.Stop;
end;
begin
//实现停止操作
ShockwaveFlash1.Stop;
ShockwaveFlash1.Rewind;
end;
替换右键弹出菜单
下面用了一个标识符来标识当前弹出的是系统菜单还是自定义菜单,其声明如下:
private
//标识右键弹出菜单是否默认还是自己定义的
//1----右键弹出自定义菜单
//0----右键弹出默认菜单
Flag:Boolean;
…………
然而在“切换”按钮的单击事件中,改变当前Flag标识符的状态。
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
//将标识位置反
if Flag then
Flag:=False
else
Flag:=True;
end;
系统通过截获右键单击Flash播放区域消息,实现切换弹出菜单功能。
private
//自定义消息处理事件
procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);…
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
//检测该消息事件是否右键点击ShockwaveFlash1控件事件
if (Msg.message = WM_RBUTTONDOWN) and (windowfrompoint(Mouse.CursorPos)=ShockwaveFlash1.handle) and Flag then begin
//若是,且标识位Flag为1,则截获系统信息,弹出自定义右键菜单
popupmenu1.Popup(Mouse.CursorPos.X, ;
Handled := True;
end;
end;
最后,需要将该自定义消息处理事件设置为系统默认消息处理事件。
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:= Form1.ApplicationEvents1Message; end;
全屏播放Flash
下面的代码实现全屏播放Flash。
procedure TForm1.N5Click(Sender: TObject);
begin
//全屏
showwindow(ShockwaveFlash1.Handle,SW_ShowMaximized) end;
普通视图播放Flash
下面的代码实现恢复普通视图播放Flash。
procedure TForm1.N7Click(Sender: TObject);
begin
//普通
showwindow(ShockwaveFlash1.Handle,SW_ShowNormal) end;
3.5 限制条件
本程序运行只能用于小Flash文件。
3.6 测试计划
通过网络下载个Flash文件进行播放结果正常。
3.7 尚未解决的问题
如何在Delphi中连续播放多个视频文件。
4 程序2(标识符)设计说明
如何在Delphi中使用Active控件技术
如何替换Flash弹出菜单
如何选择新的Flash文件
Flash文件的播放、暂停和停止问题
替换右键弹出菜单的问题
如何全屏播放Flash
如何普通视图播放Flash。