摘 要:電影或電視中的字幕往往采用一些動態(tài)變化的特殊效果以增強可視性、醒目性,配合節(jié)目主題,吸引廣大的受眾。面向?qū)ο缶幊陶Z言Visual Basic 6.0在多媒體程序設(shè)計方面功能強大,使用標簽和計時器對象便可以輕松實現(xiàn)若干種電影電視的字幕特技。討論最為常見文字滾動字幕、漸現(xiàn)漸隱、忽隱忽現(xiàn)、動態(tài)縮放等特技效果的設(shè)計,具有實際的應(yīng)用價值。
關(guān)鍵詞:字幕特技;計時器;事件;事件過程
中圖分類號:TP311;TP316 文獻標識碼:B 文章編號:1004373X(2008)2007603
Realization of Several Kinds of Film or TV Captions Stunt with VB 6.0
YANG Zhanhai1,ZHANG Weihu2,ZHU Xiaomin1
(1.Computer Center,Yan′an Unversity,Yan′an,716000,China;2.College of Physics and Electronic Information,Yan′an Unversity,Yan′an,716000,China)
Abstract:Film or captions in TV sometimes adopt the peculiar effect that a little development changes to strengthen but look at nature,eye-striking,the subject coordinating a program,the masses attracts extensive accepting.6.0 in the field of multi-media programming be geared to the needs of marriage partner programming language Visual Basic be powerful.Using the label and the timer marriage partner to be able to be relaxed just realizing some kinds of film TV captions stunt.The special effect design such as captions are discussed that characters rolls be common most,gradually show a fade-out,flickering,dynamic shrink and grow,it has actual application value.
Keywords:captions stunt;timer;event;event procedure
在電影或電視中的字幕中,恰如其分地應(yīng)用文字特技效果,能夠吸引廣大受眾的眼球。如果文字特技效果與節(jié)目內(nèi)容切合得好,就能充分展現(xiàn)節(jié)目的內(nèi)容,突出節(jié)目的特色特點,對節(jié)目的內(nèi)容具有很強的提示或說明作用,引導受眾接受節(jié)目、喜歡節(jié)目、支持節(jié)目。所以研究文字特技效果的實現(xiàn),具有實際的應(yīng)用價值。
Visual Basic 6.0是Microsoft公司推出的拳頭產(chǎn)品,所以在Windows環(huán)境下進行編程有其先天的特點和優(yōu)勢,現(xiàn)已贏得了越來越多開發(fā)者的青睞。應(yīng)用VB 6.0進行多媒體設(shè)計簡單、易于實現(xiàn)。
本文主要使用標簽對象的主要屬性的改變和計時器對象的屬性設(shè)置以及Timer事件的設(shè)計實現(xiàn)了多種文字的動態(tài)效果,以供電影或電視字幕特技設(shè)計人員引用參考。
1 滾動字幕
滾動字幕是電影或電視最為常見的字幕形式之一,如在播放電視連續(xù)劇時,屏幕下端的廣告滾動或節(jié)目預(yù)告滾動,再如片尾的從下到上的字幕滾動??傊帜坏臐L動方式可分為從右向左的滾動字幕、從左向右的滾動字幕、從上到下的滾動字幕以及從下到上的滾動字幕。
1.1 從右向左的滾動字幕
在Form1窗體上畫出標簽Label1。設(shè)置其Caption屬性值為“從右向左的滾動字幕”,將來作為滾動的文字用;設(shè)置其AutoSize屬性值為True,以確保標簽的寬度和高度與文字內(nèi)容相適應(yīng)。
再次,在Form1窗體上畫出計時器Timer1。設(shè)置其Enabled屬性值為True,以保證計時器處于啟動狀態(tài)中;設(shè)置Interval屬性為200,即每0.2 s觸發(fā)1次計時器Timer事件。
文字滾動效果的實現(xiàn)關(guān)鍵就是設(shè)計計時器Timer1的Timer事件。從右向左的滾動字幕實現(xiàn)原理可理解為,在窗體中從右向左移動標簽,標簽的寬度不變,只需逐漸縮短標簽距離窗體左邊的距離,這需要標簽Left屬性的值不斷縮小,如語句:
Label1.Left = Label1.Left - 200
每執(zhí)行該語句1次,標簽Label1的Left屬性就會減少200Twip,標簽Label1也就向右移動200Twip。每過0.2 s,就會觸發(fā)一次計時器Timer1的Timer事件,若上面的語句屬于計時器Timer1的事件過程,語句也就會每過0.2 s執(zhí)行1次,標簽Label1則不斷的向左移動。
標簽Label1不斷地向左移動,就會在移出窗體的左端。此時,整個標簽都移出了窗體的左邊界,標簽的Left屬性值應(yīng)該等于或小于負的標簽的寬度,語句表現(xiàn)為:
Label1.Left <= -Label1.Width
為實現(xiàn)從右向左的滾動字幕的連續(xù)性,當標簽移出窗體的左端時,應(yīng)使得標簽從窗體的右端出現(xiàn),可設(shè)置標簽Label1的Left屬性值等于窗體的寬度,即:
Label1.Left = Me.ScaleWidth
從右向左的滾動字幕的Timer事件過程為:
Private Sub Timer1_Timer()
If Label1.Left <= -Label1.Width Then
Label1.Left = Me.ScaleWidth
Else
Label1.Left = Label1.Left - 200
End If
End Sub
1.2 從左向右的滾動字幕
從左向右的滾動字幕的實現(xiàn)原理同上面的基本原理。先初始化好標簽Label2和計時器Timer2,再編寫計時器Timer2的Timer事件。
向右移動可增加標簽的Left屬性的值,當增加后的值等于或大于窗體寬度時,表示移出窗體右端,改變Left的值為負的標簽的寬度,標簽將從左端再次出現(xiàn)。
從左向右的滾動字幕的Timer事件過程為:
Private Sub Timer2_Timer()
If Label2.Left >= Me.ScaleWidth Then
Label2.Left = -Label2.Width
Else
Label2.Left = Label2.Left + 200
End If
End Sub
1.3 從下到上的滾動字幕
從下到上的滾動字幕的可以通過遞減標簽的Top屬性值來實現(xiàn)。先初始化好標簽Label3和計時器Timer3,再編寫計時器Timer3的Timer事件。
向上移動可遞減標簽的Top屬性的值,當遞減后的值等于或小于負的標簽高度時,表示移出窗體上端,改變Top的值為窗體的高度,標簽將從底端再次出現(xiàn)。
從下到上的滾動字幕的Timer事件過程為:
Private Sub Timer3_Timer()
If Label3.Top <= -Label3.Height Then
Label3.Top = Me.ScaleHeight
Else
Label3.Top = Label3.Top - 200
End If
End Sub
1.4 從上到下的滾動字幕
從上到下的滾動字幕的可以通過遞增標簽的Top屬性值來實現(xiàn)。先初始化好標簽Label4和計時器Timer4,再編寫計時器Timer4的Timer事件。
向下移動可遞增標簽的Top屬性的值,當遞增后的值等于或大于標簽高度時,表示移出窗體底端,改變Top的值為負的標簽的高度,標簽將從上端再次出現(xiàn)。
從上到下的滾動字幕的Timer事件過程為:
Private Sub Timer4_Timer()
If Label4.Top >= Me.ScaleHeight Then
Label4.Top = -Label4.Height
Else
Label4.Top = Label4.Top + 200
End If
End Sub
2 漸隱漸現(xiàn)
文字從左向右依次顯示,就是漸現(xiàn)效果,文字從右向左依次隱藏,就是漸隱效果。播放電視連續(xù)劇時,屏幕右下角的一些廣告就采用了漸隱漸現(xiàn)的特技效果。
2.1 文字的漸現(xiàn)
利用計時器的Timer事件,每過若干秒,觸發(fā)1次Timer事件,每觸發(fā)1次Timer事件,增加1個文字,文字就會依次顯示,實現(xiàn)漸現(xiàn)效果。當所有的文字全部顯示后,可以重新漸現(xiàn),實現(xiàn)漸現(xiàn)的循環(huán)效果。
初始設(shè)置標簽Label5和計時器Timer5的有關(guān)屬性后,文字的漸現(xiàn)效果的Timer事件過程為:
Private Sub Timer5_Timer()
s = \"文字的漸現(xiàn)效果\"
Static n As Integer
If n = Len(s) + 1 Then n = 0
Label5.Caption = Left(s,n)
n = n + 1
End Sub
其中n為靜態(tài)的局部變量,可以保留上次事件的結(jié)果,每次增加1,Left(s,n)表示取s字符串的左端的n個字符構(gòu)成的新的字符串;Len(s)表示s的長度,即字符的個數(shù)。n依次增加時,Left(s,n)取出的字符個數(shù)亦依次增加,執(zhí)行語句Label5.Caption = Left(s,n)后,形成漸現(xiàn)效果,當n超過Len(s),取n為0,實現(xiàn)再次漸現(xiàn)。
2.2 文字的漸隱
文字的漸隱效果和文字的漸現(xiàn)效果的實現(xiàn)原理完全相同,不同的是它們互為逆過程。
初始設(shè)置標簽Label6和計時器Timer6的有關(guān)屬性后,文字漸隱效果的Timer事件過程為:
Private Sub Timer6_Timer()
s = \"文字的漸隱效果\"
Static n As Integer
If n = -1 Then n = Len(s)
Label6.Caption = Left(s,n)
n = n - 1
End Sub
3 忽隱忽現(xiàn)
忽隱忽現(xiàn)是文字顯示后隱藏,隱藏后顯示,顯示與隱藏相互交替的效果。忽隱忽現(xiàn)特技,具有很強的誘因作用,在電影或電視中的字幕中應(yīng)用廣泛,如某牌的奶粉的小廣告字幕。
利用標簽的可見性,即Visible屬性的真假交替,也就True與False的交替,就可以實現(xiàn)忽隱忽現(xiàn)的文字特技效果。
初始設(shè)置標簽Label7和計時器Timer7的有關(guān)屬性后,文字的忽隱忽現(xiàn)效果的Timer事件過程為:
Private Sub Timer7_Timer()
Label7.Visible = Not Label7.Visible
End Sub
4 動態(tài)縮放
為吸引觀眾的眼球,電影或電視的片頭字幕往往以動態(tài)縮放的形式加以展現(xiàn),當字幕出現(xiàn)時,文字從小變大;字幕結(jié)束時,文字從大變小。
4.1 動態(tài)放大
文字的動態(tài)放大效果可以通過增加標簽的FontSize屬性值實現(xiàn),當文字字號增大到一定的程度后,再把標簽的FontSize屬性值設(shè)為最小值。
初始設(shè)置標簽Label8和計時器Timer8的有關(guān)屬性后,文字的動態(tài)放大效果的Timer事件過程為:
Private Sub Timer8_Timer()
If Label8.FontSize >= 50 Then
Label8.FontSize = 5
Else
Label8.FontSize = Label8.FontSize + 5
End If
End Sub
4.2 動態(tài)縮小
文字的動態(tài)放大效果可以通過遞減標簽的FontSize屬性值來實現(xiàn),當文字字號減少到一定的程度后,再把標簽的FontSize屬性值設(shè)為最大值。
初始設(shè)置標簽Label9和計時器Timer9的有關(guān)屬性后,文字的動態(tài)縮小效果的Timer事件過程為:
Private Sub Timer9_Timer()
If Label9.FontSize <= 5 Then
Label9.FontSize = 50
Else
Label9.FontSize = Label9.FontSize - 5
End If
End Sub
5 跟隨鼠標
文字的特技效果除了可以通過計時器控件的Timer事件實現(xiàn)外,還可以利用其他的事件去實現(xiàn)。例如,利用窗體的鼠標移動事件,在MouseMove事件中編寫代碼:
Label10.Move X,Y
這樣移動鼠標時,觸發(fā)MouseMove事件,標簽Label10執(zhí)行移動方法Move,把標簽移到X,Y處,而X,Y處就是鼠標光標的位置,結(jié)果形成了文字跟隨鼠標的效果。
文字跟隨鼠標的特技效果在電影或電視的教學節(jié)目中比較常見。
6 結(jié) 語
本文介紹的文字特技效果的設(shè)計是比較基礎(chǔ)的內(nèi)容,起一個拋磚引玉作用,工作人員可以結(jié)合VB 6.0的多媒體技術(shù),設(shè)計更為精彩的文字特技效果。
文字特技效果不僅在電影電視中有所應(yīng)用,還在其他方面有著廣泛的應(yīng)用,如教師上課、學生做論文答辯、公司做產(chǎn)品介紹、各種會議報告、程序界面等都會需要文字特技效果的修飾。了解和掌握一定的文字特技效果的知識、原理,是非常自然和實用的事情。
參考文獻
[1]Bradley J C,\\Millspaugh A C.VB.NET大學教程(國際版)[M].北京:清華大學出版社,2004.
[2]劉炳文.Visual Basic程序設(shè)計[M].2版.北京:清華大學出版社,2003.
[3]師維軍.VFP6.0中滾動字幕的實現(xiàn)及應(yīng)用[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2006(11):95-97.
[4]陸志堅.用VC實現(xiàn)淡入淡出的滾動字幕[J].電腦編程與維護,2001(10):78-80.
[5]周曉宏.基于VB的模擬應(yīng)用程序加載窗體的設(shè)計方法\\.現(xiàn)代電子技術(shù),2007,30(4):140-142.
[6]于振洋,趙文東.語音編輯播放系統(tǒng)的應(yīng)用研究\\.現(xiàn)代電子技術(shù),2007,30(14):95-97,100.
作者簡介 楊戰(zhàn)海 男,1972出生,陜西涇陽人,講師。主要從事計算機算法和數(shù)據(jù)庫技術(shù)方面的研究。