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