彩蝶飞舞春意浓

Author: 宋新芳 Date: 2001年 10期

    春意融融,花儿竞相开放,迎来彩蝶飞舞……多美的一幅画面!下面就让我们在VB中编写这样一个程序吧。
  #1    编程原理
      我们知道,让一系列图片连续显示,利用人眼的视觉暂留特性,就可以造成动画效果。根据这个原理,我们让蝴蝶翅膀展开与合上的两幅图片不断交替显示,并且使图片框从左向右移动,形成蝴蝶翩翩飞舞。(^10020501a^)
  #1    界面和属性
      首先准备素材──用来制作动画的两幅蝴蝶图片bfly1.gif,bfly2.gif(可在VB\Samples\Pguide\VCR子目录下找到)。另外,为了增加画面效果,选取一幅春天花儿盛开的风景画作为背景。下面就开始吧!
      进入VB,新建一个工程,在窗体Form1上,放置三个图像框控件(Image1、Image2、Image3)、两个定时器控件(Timer1、Timer2)和一个命令按钮(Command1)。其中图像框Image1及Image2用来存储两幅蝴蝶图片,图像框Image3用来交替显示两幅图片,这种方法比直接从文件中装入节省时间,而且动画效果好;定时器Timer1用来控制两幅图片显示间隔时间,定时器Timer2用来控制图片框Image3向右移动间隔时间;命令按钮Command1用来控制动画的开始和停止。
  #1    程序代码
      Private Sub Command1_Click()
      '通过判断按钮的Caption属性值,利用定时器来启动或停止动画
      If Command1.Caption=“开始动画” Then
      Timer1.Enabled=True
      Timer2.Enabled=True
      Command1.Caption=“停止动画”
      Else
      Timer1.Enabled=False
      Timer2.Enabled=False
      Command1.Caption=“开始动画”
      End If
      End Sub
      Private Sub Form_Load()
      '设置窗体居中及蝴蝶在画面出现的位置
      Me.Move(Screen.Width-Me.Width)/2,(Screen.Height-Me.Height)/2
      Image3.Left=0
      Image3.Top=Me.Height/3
      End Sub
      Private Sub Form_Resize()
      '运行过程中如窗体大小改变,控制按钮位置使之处于右下角
      Command1.Top=Me.ScaleHeight-Command1.Height
      Command1.Left=Me.ScaleWidth-Command1.Width
      End Sub
      Private Sub Timer1_Timer()
      '实现两幅图片交替显示
      Static flag
      If flag=0 Then
      Image3.Picture=Image1.Picture
      flag=1
      Else
      Image3.Picture=Image2.Picture
      flag=0
      End If
      End Sub
      以下代码实现蝴蝶从左向右移动,如蝴蝶移出窗体外,则对Image3的Left值重新赋值,使蝴蝶回来。
      Private Sub Timer2_Timer()
      If Image3.Left>Me.ScaleWidth Then
      Image3.Left=Me.Left-1500
      Else
      Image3.Move Image3.Left+100
      End If
      End Sub
      OK,大功告成,按下F5慢慢欣赏自己的杰作吧!