譚立球,邵博雅
(1. 中南大學(xué)信息與網(wǎng)絡(luò)中心,湖南 長(zhǎng)沙 410083;長(zhǎng)沙市南雅中學(xué),湖南 長(zhǎng)沙 410129)
2017-09-01
譚立球(1970- ),男,湖南益陽(yáng)人,高級(jí)工程師,博士,研究方向:軟件工程,圖像處理。
1674- 4578(2017)05- 0055- 03
用Visual Basic程序?qū)崿F(xiàn)霓虹燈動(dòng)態(tài)效果
譚立球1,邵博雅2
(1. 中南大學(xué)信息與網(wǎng)絡(luò)中心,湖南 長(zhǎng)沙 410083;長(zhǎng)沙市南雅中學(xué),湖南 長(zhǎng)沙 410129)
Visual Basic是一種功能強(qiáng)大,且簡(jiǎn)單易學(xué)的程序設(shè)計(jì)語(yǔ)言。用Visual Basic程序設(shè)計(jì)開(kāi)發(fā)平臺(tái)能夠?qū)崿F(xiàn)很多應(yīng)用功能。本文基于Visual Basic6.0開(kāi)發(fā)平臺(tái),通過(guò)利用Visual Basic中的計(jì)時(shí)器控件(Timer),Label控件進(jìn)行設(shè)計(jì),實(shí)現(xiàn)了一種霓虹燈閃爍和移動(dòng)的動(dòng)態(tài)效果。
動(dòng)態(tài)效果;計(jì)時(shí)器;Label;Visual Basic;控件
Visual Basic(VB)程序設(shè)計(jì)是一種簡(jiǎn)單易學(xué),但功能強(qiáng)大的程序設(shè)計(jì)語(yǔ)言。另一方面,VB在設(shè)計(jì)思想上引入兩個(gè)重要的方法:可視化編程以及事件驅(qū)動(dòng)的編程機(jī)制。這大大地簡(jiǎn)化了程序設(shè)計(jì)的難度,使沒(méi)有任何編程基礎(chǔ)的人也能夠在短時(shí)間內(nèi)掌握。因此,VB程序設(shè)計(jì)在過(guò)去的20年中成為了一種廣泛的程序設(shè)計(jì)語(yǔ)言。
應(yīng)用VB進(jìn)行程序開(kāi)發(fā),一個(gè)重要的方面就是實(shí)現(xiàn)動(dòng)畫(huà)效果。在動(dòng)畫(huà)設(shè)計(jì)方面,學(xué)者李艷通過(guò)利用Timer、Picture、shape等控件實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的動(dòng)畫(huà)效果;陳艇等人利用PictureClip控件實(shí)現(xiàn)了連續(xù)圖片動(dòng)畫(huà)效果;文獻(xiàn)提出了VB程序設(shè)計(jì)的動(dòng)畫(huà)設(shè)計(jì)方法;而文獻(xiàn)利用VB設(shè)計(jì)了一個(gè)簡(jiǎn)單的霓虹燈效果。
本文是在上述文獻(xiàn)的基礎(chǔ)上,基于VB 6.0開(kāi)發(fā)平臺(tái),利用Timer控件、Label控件等實(shí)現(xiàn)了一個(gè)星星閃爍的霓虹動(dòng)態(tài)效果。
霓虹燈是一種低氣壓冷陽(yáng)極輝光放電發(fā)光的光源,是我們?nèi)粘I钪凶畛R?jiàn)的。通過(guò)使光源發(fā)出不同的顏色,形成了迷人的閃爍效果。另一方面,如果讓不同位置的光源不同時(shí)間發(fā)光,則會(huì)展示出一種動(dòng)態(tài)的效果。本文便是利用這一原理,基于VB實(shí)現(xiàn)霓虹燈的動(dòng)態(tài)效果。
1.1 關(guān)鍵控件介紹
VB中的Timer控件是進(jìn)行程序設(shè)計(jì)的一個(gè)重要的控件。在timer控件中設(shè)置Interval屬性,可以讓在timer事件過(guò)程中的程序代碼以周期性的執(zhí)行。因此,可以利用Timer的這一特點(diǎn)來(lái)設(shè)計(jì)具有周期性的程序。
1.2 設(shè)計(jì)思路
利用霓虹燈的閃爍原理,來(lái)完成本文中的霓虹燈動(dòng)態(tài)效果。首先需要進(jìn)行運(yùn)行界面的設(shè)計(jì)。在主窗體中,首先將Timer控件放入,并添加一個(gè)名稱為L(zhǎng)abel1的label數(shù)組控件,以及三個(gè)label控件。
然后,通過(guò)設(shè)計(jì)Timer的Interval屬性值,此屬性值取值范圍為0~65535,單位為毫秒。它決定了時(shí)鐘事件的執(zhí)行時(shí)間間隔。為使霓虹燈效果顯示明顯,一般設(shè)置Interval屬性值在200~600 ms。
針對(duì)Label1控件數(shù)組,通過(guò)設(shè)置其屬性值ForeColor,來(lái)改變顏色,并在程序運(yùn)行過(guò)程中設(shè)置其中對(duì)應(yīng)的Visible屬性,形成閃爍的效果。此外,在Timer控件時(shí)間過(guò)程中,通過(guò)設(shè)置不同分組的label1中的元素,在不同的時(shí)鐘周期中顯示,從而產(chǎn)生動(dòng)態(tài)的效果。
1.3 設(shè)計(jì)步驟
1) 新建工程。打開(kāi)VB6.0程序設(shè)計(jì)開(kāi)發(fā)平臺(tái),新建一個(gè)包含窗體的工程。
2) 界面設(shè)計(jì)。在新建工程的窗體(Form1)添加1個(gè)Timer控件、1個(gè)含有30個(gè)Label標(biāo)簽的控件數(shù)組以及3個(gè)Label標(biāo)簽控件。并針對(duì)上述控件做如下相關(guān)屬性的設(shè)置:
表1 控件屬性設(shè)置
進(jìn)行屬性設(shè)置后的界面效果如圖1所示。
圖1 設(shè)計(jì)界面效果
前臺(tái)設(shè)計(jì)完成之后,便可以雙擊對(duì)應(yīng)的窗體及控件進(jìn)行程序代碼的設(shè)計(jì)。
2.1 程序代碼
在窗體裝載時(shí)間過(guò)程中編寫(xiě)如下代碼,進(jìn)行初始化:
Private Sub Form_Load()
Dim index As Integer
Num = 0
For index = 0 To 9
Label1(index * 3).ForeColor = &HFF&
Label1(index * 3 + 1).ForeColor = &HFF00&
Label1(index * 3 + 2).ForeColor = &HFFFF&
Next index
End Sub
在Timer事件過(guò)程中編寫(xiě)如下代碼,完成動(dòng)態(tài)效果的設(shè)計(jì):
Private Sub Timer1_Timer()
Dim index As Integer
If Num = 3 Then
Num = 0
End If
For index = 0 To 29
Label1(index).Visible = False
Next index
If Num Mod 3 = 0 Then
For index = 0 To 9
Label1(index * 3).Visible = True
Next index
Label2.ForeColor = &HFF& '
Label3.ForeColor = &HFF00&
Label4.ForeColor = &HFF00&
Else
If Num Mod 3 = 1 Then
For index = 0 To 9
Label1(index * 3 + 1).Visible = True
Next index
Label2.ForeColor = &HFF00&
Label3.ForeColor = &HFF&
Label4.ForeColor = &HFF00&
Else
For index = 0 To 9
Label1(index * 3 + 2).Visible = True
Next index
Label2.ForeColor = &HFF00&
Label3.ForeColor = &HFF00&
Label4.ForeColor = &HFF&
End If
End If
Num = Num + 1
End Sub
2.2 運(yùn)行效果
經(jīng)過(guò)上述程序的設(shè)計(jì),使得程序在運(yùn)行時(shí),每循環(huán)一個(gè)時(shí)鐘周期,顯示出不同組的星星;同時(shí),每次顯示的顏色也不同。這樣,便產(chǎn)生了霓虹燈的閃爍和移動(dòng)的動(dòng)態(tài)效果。其運(yùn)行時(shí)的效果如圖2,圖3,圖4所示。
圖2 第一個(gè)時(shí)鐘周期運(yùn)行效果
圖3 第二個(gè)時(shí)鐘周期運(yùn)行效果
本文通過(guò)使用VB6.0開(kāi)發(fā)平臺(tái)的Timer控件以及Label控件實(shí)現(xiàn)了霓虹燈的動(dòng)態(tài)效果設(shè)計(jì)。通過(guò)界面以及代碼的設(shè)計(jì),不僅實(shí)現(xiàn)了霓虹燈的閃爍效果,同時(shí)在前人的基礎(chǔ)上實(shí)現(xiàn)了一種星星移動(dòng)的動(dòng)態(tài)效果。通過(guò)這樣的設(shè)計(jì),使得這個(gè)程序和現(xiàn)實(shí)生活中的霓虹燈更加相似。
圖4 第三個(gè)時(shí)鐘周期運(yùn)行效果
[1] 李艷.VB中動(dòng)畫(huà)效果的實(shí)現(xiàn).福建電腦,2008(8):189-189.
[2] 陳艇,陳少琴,洪超群.基于PictureClip控件的連續(xù)圖片動(dòng)畫(huà)效果的實(shí)現(xiàn).計(jì)算機(jī)光盤軟件與應(yīng)用,2014(10):215-215.
[3] 陸斌,何友金.基于VB的動(dòng)畫(huà)方法及應(yīng)用,微機(jī)發(fā)展及應(yīng)用,2003,13(6):29-31.
[4] 朱春香.VB程序中霓虹燈效果的設(shè)計(jì)與實(shí)現(xiàn).電子商務(wù),2012(1):69-69.
TheRealizationofNeonDynamicEffectsUsingVisualBasicProgram
Tan Liqiu1, Shao Boya2
(1.InformationandNetworkCenter,CentralSouthUniversity,ChangshaHunan410083,China;2.NanyaMiddleSchool,ChangshaHunan410129,China)
Visual Basic program is a powerful and easy to learn program. Which is can be used to realize many application functions. Based on the Visual Basic6.0 development platform, by using the timer control (timer) in visual basic, the label control is designed to achieve the dynamic effect of flashing and moving neon lights.
dynamic effects;timer;label;visual basic;controller
TP311.52
A