转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
在VB应用软件中实现动画效果         ★★★★

在VB应用软件中实现动画效果

作者:闵涛 文章来源:闵涛的学习笔记 点击数:639 更新时间:2009/4/23 14:58:19
VB应用程序中,加入了动画之后可使软件具有生动活泼的效果,而且,在编写组态软件中,动画功能更是必不可少,如容器中容量的变化、液体液面的变化等,实际也是一种动画效果。在中科院空间中心开发的“电场和电导率监测网中心站专家系统”中,有多处使用动画效果,现简明介绍如下。
   一、使用Animation控件

   在VB5.0中可以使用Animation控件实现动画,实例如下:

Private Sub Animation1_Click ()
With CommonDialog1
Filter = "avi (*.avi)|*.avi"
过滤器指定在对话框的文件列表框中显示文件的类型
.ShowOpen
显示“打开”对话框
End With
With Animation1
.Autoplay = True


   一旦将 .avi 文件加载到 Animation 控件中,则 .avi 文件 将连续循环的自动播放。

.Open CommonDialog1.Filename


   打开一个将要播放的 .avi 文件。如果 AutoPlay 属性为 True,则只要加载该文件便可。

End With
End Sub


   Animation 控件不能播放含有声音数据的 .avi 文件。此外,动画控件只能显示未压缩的或用行程编码 (RLE) 压缩的 .avi 文件。当用文件调用 Open 方法时,如果该文件含有声音数据,或不具备特定的压缩格式,则返回错误。

   二、使用AniPushButton(AniButton)控件

   受WINDOWS/NT超级终端动画效果的影响,笔者也希望在开发的应用软件中加入转动地球的效果。首先用PHOTOSHOP制作一些图画,地球的图像是用一个地球仪临摹取得的,每次将地球仪转动一个固定的角度,得到一幅不同角度地球的图像,重复多次,且将每一幅图存为一个.bmp文件,供AniPushButton调用。

   AniPushButton控件包含了大量的属性、方法、事件供开发人员使用。首先在Picture和Frame属性中装入图像文件,Picture属性可以装入多幅图像文件,帧Frame属性是Picture属性装入图像文件的索引,Frame属性是1对应第一个图像文件,注意,Frame 只能从1开始,而图像数组可以从0开始,这两个属性可以在属性设计时设置,也可以在程序中设置,Picture属性可以装入.bmp、.ico、.wmf等文件,其他格式的图像文件可以用PHOTOSHOP或SEA等文件进行格式转换,在动画的图像文件装入时,不是装入一幅图像文件,而是要在Frame属性的控制下,装入多幅图像文件,Frame为1,Picture装入第一幅图像文件,Frame为2,Picture装入第二幅图像文件 来卫嗤疲刹Ч母髦滞枷褚来巫叭隤icture属性中。

   PicDrawMode属性用于设置显示图像与装入图像之间的比例关系。0为控制按设计的大小装入图像,1为控制按图像的大小自动调整边框的大小,2为图像按控制的大小放大或缩小原图 Caption属性,为了不影响动画的效果,这里清空Caption属性。

   Speed属性,表示动态切换每幅图的速度,以毫秒ms为单位,值越大,切换速度越慢。

   SpecialOp属性,该属性在设计时无效,只有在程序运行时软件设置,为1时,表示模拟鼠标的Click操作,不由用户操作触发,而由系统自动触发动画按钮,使控制执行Click功能,在下面的软件中使用定时器来激活该功能。在下面的程序中,用到的一些参数值,包括Picture和Frame都是在程序中设置的,不是在属性对话框中设置的。

Private Sub Form_Load()
With timer1 设定时器属性
.Enabled = False
.Interval = 600
End With
With AniPushButton1 设AniPushButton1各属性
.Enabled = True 激活
.Cycle = 0
.Caption = ""
.PictDrawMode = 1 按图像的大小自动调整
.Speed = 200 帧切换速度
.Frame = 1 用LoadPicture方法给Picture属性赋值
.Picture = LoadPicture("c:\earth1.bmp ")
.Frame = 2
.Picture = LoadPicture("c:\earth2.bmp")
.Frame = 3
.Picture = LoadPicture("c:\earth3.bmp")
.Frame = 4
.Picture = LoadPicture("c:\earth4.bmp")
.Frame = 5
.Picture = LoadPicture("c:\earth5.bmp")
End With

End Sub

Sub Cmd_Start_Click () 开始命令按钮启动定时器
timer1.Enabled = -1
End Sub

Sub Timer1_Timer ()
AniButton1.SpecialOp = 1 实现鼠标的Click操作
End Sub


   三、使用PictureClip控件实现动画

   该控件提供了存储多个图像信息的技术,其访问方式不是向AniPushButton依次切换每幅图像,而是先将多幅图像依次有序存放在一个.bmp文件中,.bmp中的图像将被均匀分割成许多小块,每一块作为动画切换的一幅图。

   下面的程序将实现一个转动陀螺的动画效果。

   在程序的声明段定义变量:

Dim y As Integer
Dim toggle As Integer

Private Sub Form_Load()
picture1.Picture = PictureClip1.
GraphicCell(0) 使用第一幅为开始帧
y = 0
toggle=0
End Sub

Private Sub cmd_onoff_Click() 开关命令按钮
If toggle = 0 Then
cmd_onoff.Caption = "停止"
toggle = 1
Else
cmd_onoff.Caption = "旋转"
toggle = 0
End If
End Sub
Private Sub Timer1_Timer()
If toggle = 1 Then spin 满足条件,调图切换子程序
End Sub
Private Sub spin()
y = y + 1: If y = 17 Then y = 0
picture1.Picture = PictureClip1.
GraphicCell(y) 图切换一帧
End Sub


   在上面的程序中,使用了命令按钮、图片控件、定时器和图像剪切控件等功能,其中最主要的是制作图像文件。图像文件制作分两个过程,首先制作单个的图像文件,然后,将这些图像文件合并成一个图像文件,存于一个.bmp文件中,在图像合成时可使用WINDOWS/95中的“画图”,用粘贴的方法完成。注意,在图像合成时,应设置状态栏参数以确定图像的精确位置,否则,在动画过程中,图像会出现跳动和不稳定感。

   四、使用Image实现动画效果

   该功能用定时器控件来控制移动和地球转动的速度,当然,其速度还与程序中设定的步长有关系,具体程序片段如下:

Private Sub Form_Load()
Timer_animate.inteval=100 INTEVAL属性为100ms
Timer_animate.enabled=true 启动动画定时器
End Sub
Private Sub Timer_animate_Timer()
Call ani_Image 定时调移动子程序
End Sub
Sub IncrFrame()
FrameNum = FrameNum + 1 帧加1
If FrameNum $#@62; 5 Then
最后一帧图像显示之后返回第一帧
FrameNum = 1
End If
Imageearth(0).Picture = Imageearth(FrameNum).Picture
将该帧图像赋给运动的Imageearth(0)控件的Picture属性
End Sub
Sub ani_Image() 控制移动子程序
Select Case Motion 控制移动方向的变量
Case 1 向上和向左移动,步长50 twips
Imageearth(0).Move Imageearth(0).
Left - 50, Imageearth(0).Top - 50
IncrFrame 切换到下一幅图
If Imageearth(0).Left $#@60; = 0 Then 向左移动到了边界
Motion = 2 向上和向右移动
ElseIf Imageearth(0).Top $#@60; = 0 Then
Motion = 4 向上移动到了边界,改向下和向左移动
End If
Case 2 向右和向上
Imageearth(0).Move Imageearth(0).Left + 50,
Imageearth(0).Top - 50
IncrFrame
到了右边界,转为向左和向上
If Imageearth(0).Left $#@62;= (startform.Width
- Imageearth(0).Width) Then
Motion = 1
ElseIf Imageearth(0).Top $#@60; = 0 Then
Motion = 3 向右向下
End If
Case 3 向右向下
Imageearth(0).Move Imageearth(0).Left + 50,
Imageearth(0).Top + 50
IncrFrame
If Imageearth(0).Left $#@62;= (startform.Width
- Imageearth(0).Width) Then
Motion = 4 向左向下
ElseIf Imageearth(0).Top $#@62;=
(startform.Height - Imageearth(0).Height) - 680 Then
Motion = 2 向右向上,其中680 twips是标题和菜单的高度
End If
Case 4 向左向下
Imageearth(0).Move Imageearth(0).Left - 50,
Imageearth(0).Top + 50
IncrFrame
If Imageearth(0).Left $#@60; = 0 Then
是否到了左边界,如到了转向右向下
Motion = 3
是否到了下边界
ElseIf Imageearth(0).Top $#@62;= (startform.Height
- Imageearth(0).Height) - 680 Then
Motion = 1 向左向上
End If
End Select
End Sub


[VB.NET程序]GSM短信模块库函数,可以用VB,VC,调用简单实用  [办公软件]PowerPoint做交互课件之弃用VBA
[办公软件]VBA获取U盘、主板、CPU序列号和网卡MAC地址  [办公软件]VBA设置文件属性及加密源代码示例
[办公软件]VBA中初始化ADO连接的几种方法  [网络安全]“VB破坏者变种N”病毒摘要
[Web开发]ASP.NET上传文件到数据库VB版  [办公软件]在Excel中利用VBA实现多表单元格数据的读取与赋值…
[办公软件]使用Vba读取已关闭的Excel工作薄数据到当前工作表…  [办公软件]Excel编程基础之VBA文件操作详解
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台