彩蝶飞舞春意浓
#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慢慢欣赏自己的杰作吧!