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

发表于:2007-06-21来源:作者:点击数: 标签:
下一页 1 2 在 开发 VB 应用程序中,加入了动画之后可使软件具有生动活泼的效果,而且,在编写组态软件中,动画功能更是必不可少,如容器中容量的变化、液体液面的变化等,实际也是一种动画效果。在中科院空间中心开发的“电场和电导率监测网中心站专家系统

下一页 1 2 

   


  在开发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 文件 将连续循环的自动播放。clearcase/" target="_blank" >cc0000>

  .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装入第二幅图像文件,依次类推,将可产生动画效果的各种图像依次装入Picture属性中。

  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

原文转自:http://www.ltesting.net