在当今计算机领域中,网络与多媒体技术已经成为人们生活的一部分,同时也是计算机领域中发展最为迅速的领域,多媒体编程的常用方法,已经成为程序员的必备技巧之一,所以笔者特地用一章的篇幅向读者介绍多媒体程序设计,其中包括动画程序制作,如何制作动画播放器等。
图文并茂是多媒体程序的特点之一,在应用程序中适当的插入一些动画,会使应用程序变得生动、活泼,所以多媒体应用程序设计中动画程序设计是很重要的一部分内容。下面就通过一个示例程序向读者介绍Visual Basic 6.0中动画应用程序设计得一般方法和常用技巧,具体的程序设计步骤如下所示。
首先用鼠标选择Windows操作系统“开始”菜单中的“程序”/Microsoft Visual Studio中的Microsoft Visual Basic 6.0选项来激活Visual Basic应用程序,在Visual Basic 6.0的集成开发环境中用鼠标选择“文件”菜单中的“新建工程”选项,在屏幕上就会弹出一个如图6-1所示的“新建工程”对话框。

图6-1 “新建工程”对话框
在“新建工程”对话框中选择“标准EXE”选项,单击“确定”按钮,在Visual Basic 6中就新建了一个标准的工程文件,同时打开了一个空白的窗体。
窗体的属性设置如下所示:
Begin Visual Basic.Form Form1
BorderStyle = 3
Caption = "播放动画"
Icon = "Redtop.frx":0000
MaxButton = 0
MinButton = 0
Moveable = 0
ScaleHeight = 306
ScaleMode = 3
ScaleWidth = 459
StartUpPosition = 2
End
经过以上属性设置后的窗体具有如下所示的特性:
n 程序运行过程中,窗体位于屏幕的中央,并且用户不能够移动窗体;
n 窗体的标题栏中显示文本“播放动画”;
n 窗体的标题栏中没有最大化和最小化按钮,只有关闭按钮;
n 在程序运行的过程,用户不能够改变窗体的大小。
在程序运行的过程中,为了能够显示动画,需要有显示容器,为此要向当前空白的窗体上添加两个PictureBox控件,同时向窗体上添加四个按钮控件、一个Timer控件、18个Image控件、两个Label控件和两个TextBox控件,添加控件后的窗体如图6-2所示。

图6-2 添加控件后的窗体
各个控件的作用如下所示:
n Image控件:18个Image控件组成一个控件数组,在其中存储了18幅图标文件,在程序运行的过程中,窗体的图标将会随着动画进程而改变;
n 两个Label控件:显示固定的文本“动画总桢数:”和“当前播放桢”;
n 四个CommandButton控件:在程序运行的过程中用于控制动画播放的进程,如播放、暂停和停止等;
n 两个TextBox控件:在程序运行的过程中,用于显示当前动画的总桢数和当前播放桢数;
n 两个PictureBox控件:在程序运行过程中充当动画显示的容器。
其中添加到窗体上的各个控件的属性设置如下所示:
Begin Visual Basic.TextBox Text2
Height = 375
Left = 2640
Text = "Text2"
Top = 4200
Width = 1095
End
Begin Visual Basic.TextBox Text1
Text = "Text1"
Top = 3600
End
Begin Visual Basic.CommandButton Command3
Caption = "结束运行"
Height = 510
Left = 4560
Top = 2520
Width = 1485
End
Begin Visual Basic.CommandButton Command2
Caption = "停止播放"
Top = 1920
End
Begin Visual Basic.CommandButton Command1
Caption = "暂停播放"
Top = 1320
End
Begin Visual Basic.CommandButton Command4
Caption = "播放动画"
Top = 720
End
Begin Visual Basic.PictureBox Picture6
Height = 2325
Left = 840
Top = 720
Width = 2910
Begin Visual Basic.PictureBox Picture1
Appearance = 0
AutoSize = -1
Height = 1185
Left = 720
Top = 600
Width = 1305
End
End
Begin Visual Basic.Timer Timer1
Interval = 10
Left = 5760
Top = 240
End
Begin Visual Basic.Label Label2
Caption = "当前播放桢:"
End
Begin Visual Basic.Label Label1
Caption = "动画总桢数:"
End
Begin Visual Basic.Image Image1
Index = 17
End
……
Begin Visual Basic.Image Image1
Index = 0
End
经过以上属性设置后的控件具有如下所示的特性;
n Picture1控件在程序运行的过程中能够根据图像文件的大小自动调节控件的尺寸来适应图像;
n 18个Image控件组成一个控件数组Image1;
n Label1和Label2控件能够根据其中文本的长度自动调节控件的尺寸来适应文本;
n Picture2控件在程序运行的过程中充当Picture1控件显示的容器。
在本示例程序设计的过程中,需要用到两个ActiveX控件——Slider控件和PictureClip控件。为此,在程序设计的过程中,用鼠标左键单击菜单“工程”中的“部件”选项,在屏幕上就会弹出一个如图6-3所示添加ActiveX的对话框。
注意:
@ ActiveX控件是第三方程序开发商提供的“即取即用”控件,在Visual Basic 6.0的“工具箱”上没有,需要将它们调用出来。

图6-3 “部件”对话框
在添加ActiveX控件的“部件”对话框中选择Microsoft PictureClip Control 6.0和 Microsoft Windows Common Controls 6.0两个选项,单击“确定”按钮,程序就会自动的向当前的项目文件中添加了示例程序所需要的ActiveX控件,这两个ActiveX控件的声明如下所示:
Object = "{27395F88-0C0C-101B-A3C9-08002B2F49FB}#1.1#0"; "PICCLP32.OCX"
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
在程序设计的过程中,向当前空白的窗体上添加一个Slider控件和一个PictureClip控件,它们的属性设置如下所示:
Begin MSComctlLib.Slider Slider1
Height = 375
Left = 600
Top = 3120
Width = 3255
LargeChange = 3
Max = 17
End
Begin PicClip.PictureClip PictureClip2
Left = 960
Top = 0
Rows = 3
Cols = 6
End
说明:
其中添加ActiveX控件的方法与添加普通控件的方法一样,在“工具箱”上用鼠标双击相应的ActiveX控件图标即可。
添加ActiveX控件后的窗体如图6-4所示。

图6-4 添加ActiveX控件后的窗体
添加到窗体上的两个ActiveX控件的作用如下所示:
n Slider控件:在程序运行的过程中动态的显示动画播放进程,而且用户还可以通过滚动条来调节动画播放进程;
n PictureClip控件:在控件中存储了18幅图像,在程序运行的过程中通过调用这18幅图像来显示动画。
其中PictureClip控件可以通过如图6-5所示的对话框来设置。

图6-5 PictureClip控件属性设置
在本示例程序中,所谓程序初始化,指的就是为窗体Private Sub Form_Load()事件所添加的响应代码。
在程序设计的过程中,用鼠标左键双击窗体上的空白处,在屏幕上就会弹出一个空白的代码窗口,在代码窗口的事件列表中选择窗体Form,在对应的事件列表中选择事件Private Sub Form_Load(),把光标移动到事件的处理过程中,并且添加如下所示的事件响应代码:
Private Sub Form_Load()
Picture1.Picture = PictureClip2.GraphicCell(0)
y = 0
Picture1.Left = (Picture6.ScaleWidth - Picture1.Width) / 2
Picture1.Top = (Picture6.ScaleHeight - Picture1.Height) / 2
Text1.Text = PictureClip2.Cols * PictureClip2.Rows
Text2.Text = 0
End Sub
在程序运行的初期,事件Private Sub Form_Load()中的代码就会被执行,程序通过Picture1.Picture = PictureClip2.GraphicCell(0)语句来显示第一桢动画,然后通过两条语句来设置图像控件的显示位置,在程序初始化的最后,通过语句Text1.Text = PictureClip2.Cols * PictureClip2.Rows和Text2.Text = 0完成对文本框控件中文本的初始化。
经过程序初始化后的运行窗体如图6-6所示。

图6-6 经过程序初始化后的运行窗体
窗体上的Timer控件在程序运行的过程中充当计时器,即每隔一定的时间就自动的重复某一个动作。在本示例程序中,用于动画的显示要不断的从图像文件中读取信息,所以要利用计时器。
计时器控件的属性设置如图6-7所示。

图6-7 计时器控件的属性设置