标题用VB实现电影字幕效果
栏目软件世界
发布2001年37期
电影字幕我们大家每个人都见过,一行一行的文字从荧幕的底部慢慢地升上来,直到顶部才消失,很像那么回事。在电脑软件里面我们也是常常会见到这个特效,大家几乎人手一份的Winamp的关于(About…)窗口里就有这个效果。当然了,人家做得的确是好,不仅有这个,还有动画效果的背景,两者相映成趣,煞是好看!不过,今天咱们只学一点简单的,只做一个电影字幕的效果就行了。同时,大家还将看到一个我们自己做的进度条效果,不知你有没有兴趣试一下。
言归正传,打开你的VB,新建一个标准EXE工程,然后依次添加以下控件。
◆在窗体Form1上添加一个PictureBox(图片框)控件Picture1,作为字幕效果表演的“场地”。
◆在图片框Picture1上添加一个Label(文字标签)控件Label1,用于显示字幕文本。
◆在窗体Form1上添加两个Shape(图形)控件Shape1和Shape2,并将Shape2放于显著位置。
◆在窗体Form1上添加一个CommandButton(按钮)控件Command1。
◆在窗体Form1上添加一个Timer(定时器)控件,用于实现字幕的滚动。
好,窗体控件添加完成,很简单吧。接下来让我们用菜单“视图/代码窗口”打开这个工程的代码窗口,输入下面的源代码:
Option Explicit
Dim Step As Integer '定义字幕滚动的速度,建议取值范围为15~300
Private Sub Command1_Click()
Command1.Enabled = False '暂时禁止按下按钮
Label1.Top = Picture1.Height '将字幕先隐藏起来
Timer1.Enabled = True '开启定时器
End Sub
Private Sub Form_Load
Step = 30 '*****只有这一行代码的赋值需要更改,也允许更改******
Rem 常量初始化
Label1.AutoSize = True
Label1.Left = 0
Label1.Top = Picture1.Height '本行代码如果不要,程序一启动即显示字幕文本
Label1.Caption = “用VB实现的电影字幕效果演示” + Chr(13)
Label1.Caption = Label1.Caption + “1 - 第一行文字” + Chr(13)
……
(编注:由于代码重复,为了不无谓占用空间,因此省略掉了,读者朋友们将带下划线部分依次加1即可。)
Label1.Caption = Label1.Caption + “15 - 最后一行文字了。”
Shape1.BorderColor = &H80000002 '定义进度条的颜色,这里为蓝色
Shape1.FillColor = Shape1.BorderColor
Shape1.FillStyle = 0 '0 - Solid 实心矩形
Shape1.Height = Shape2.Height - 2
Shape1.Left = Shape2.Left
Shape1.Top = Shape2.Top + 1
Shape1.Width = 1
If Step < 0 Then '步长Step不能为负数!
Step = -Step
End If
If Step = 0 Then '步长Step也不能为0!
Step = 30
End If
Timer1.Interval = Step '定时器时间间隔
Timer1.Enabled = False '禁止定时器
Command1.Caption = “显示”
End Sub
Private Sub Timer1_Timer()
If (-Label1.Top) - Label1.Height >= -Step Then '进度条的取值不能>100%!
Shape1.Width = Shape2.Width '100%进度条
Label1.Top = -Label1.Height
Timer1.Enabled = False '禁止定时器
Command1.Enabled = True '允许按下按钮
Shape1.Width = 1 '0%进度条
Else
Label1.Top = Label1.Top - Step '字幕的滚动
'实现进度条效果
Shape1.Width = Shape2.Width * (1 - (Label1.Top + Label1.Height) /(Picture1.Height + Label1.Height))
End If
End Sub
所有这些都完成以后,按一下F5键执行一下程序试试,怎么样?咦!怎么窗口上什么都没有啊!呵呵,别着急,按一下窗口上的“显示”按钮再看一下,这下好了吧!是不是很为自己的成果而高兴呢!本程序在Windows 98SE,VB6下运行通过。