国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

在VB應用軟件中實現動畫效果

2019-11-18 17:35:14
字體:
來源:轉載
供稿:網友
在開發(fā)VB應用程序中,加入了動畫之后可使軟件具有生動活潑的效果,而且,在編寫組態(tài)軟件中,動畫功能更是必不可少,如容器中容量的變化、液體液面的變化等,實際也是一種動畫效果。在中科院空間中心開發(fā)的“電場和電導率監(jiān)測網中心站專家系統”中,有多處使用動畫效果,現簡明介紹如下。

----一、使用Animation控件

----在VB5.0中可以使用Animation控件實現動畫,實例如下:

PRivateSubAnimation1_Click()
WithCommonDialog1
Filter="avi(*.avi)|*.avi"
過濾器指定在對話框的文件列表框中顯示文件的類型
.ShowOpen
顯示“打開”對話框
EndWith
WithAnimation1
.Autoplay=True

----一旦將.avi文件加載到Animation控件中,則.avi文件將連續(xù)循環(huán)的自動播放。

.OpenCommonDialog1.Filename

----打開一個將要播放的.avi文件。如果AutoPlay屬性為True,則只要加載該文件便可。

EndWith
EndSub

----Animation控件不能播放含有聲音數據的.avi文件。此外,動畫控件只能顯示未壓縮的或用行程編碼(RLE)壓縮的.avi文件。當用文件調用Open方法時,如果該文件含有聲音數據,或不具備特定的壓縮格式,則返回錯誤。

----二、使用AnipushButton(AniButton)控件

----受WINDOWS/NT超級終端動畫效果的影響,筆者也希望在開發(fā)的應用軟件中加入轉動地球的效果。首先用photoshop制作一些圖畫,地球的圖像是用一個地球儀臨摹取得的,每次將地球儀轉動一個固定的角度,得到一幅不同角度地球的圖像,重復多次,且將每一幅圖存為一個.bmp文件,供AniPushButton調用。

----AniPushButton控件包含了大量的屬性、方法、事件供開發(fā)人員使用。首先在Picture和Frame屬性中裝入圖像文件,Picture屬性可以裝入多幅圖像文件,幀Frame屬性是Picture屬性裝入圖像文件的索引,Frame屬性是1對應第一個圖像文件,注意,Frame只能從1開始,而圖像數組可以從0開始,這兩個屬性可以在屬性設計時設置,也可以在程序中設置,Picture屬性可以裝入.bmp、.ico、.wmf等文件,其他格式的圖像文件可以用PHOTOSHOP或SEA等文件進行格式轉換,在動畫的圖像文件裝入時,不是裝入一幅圖像文件,而是要在Frame屬性的控制下,裝入多幅圖像文件,Frame為1,Picture裝入第一幅圖像文件,Frame為2,Picture裝入第二幅圖像文件,依次類推,將可產生動畫效果的各種圖像依次裝入Picture屬性中。

----PicDrawMode屬性用于設置顯示圖像與裝入圖像之間的比例關系。0為控制按設計的大小裝入圖像,1為控制按圖像的大小自動調整邊框的大小,2為圖像按控制的大小放大或縮小原圖Caption屬性,為了不影響動畫的效果,這里清空Caption屬性。

----Speed屬性,表示動態(tài)切換每幅圖的速度,以毫秒ms為單位,值越大,切換速度越慢。

----SpecialOp屬性,該屬性在設計時無效,只有在程序運行時軟件設置,為1時,表示模擬鼠標的Click操作,不由用戶操作觸發(fā),而由系統自動觸發(fā)動畫按鈕,使控制執(zhí)行Click功能,在下面的軟件中使用定時器來激活該功能。在下面的程序中,用到的一些參數值,包括Picture和Frame都是在程序中設置的,不是在屬性對話框中設置的。

PrivateSubForm_Load()
Withtimer1設定時器屬性
.Enabled=False
.Interval=600
EndWith
WithAniPushButton1設AniPushButton1各屬性
.Enabled=True激活
.Cycle=0
.Caption=""
.PictDrawMode=1按圖像的大小自動調整
.Speed=200幀切換速度
.Frame=1用LoadPicture方法給Picture屬性賦值
.Picture=LoadPicture("c:/earth1.bmp")
.Frame=2
.Picture=LoadPicture("c:/earth2.bmp")
.Frame=3
.Picture=LoadPicture("c:/earth3.bmp")
.Frame=4
.Picture=LoadPicture("c:/earth4.bmp")
.Frame=5
.Picture=LoadPicture("c:/earth5.bmp")
EndWith

EndSub

SubCmd_Start_Click()開始命令按鈕啟動定時器
timer1.Enabled=-1
EndSub

SubTimer1_Timer()
AniButton1.SpecialOp=1實現鼠標的Click操作
EndSub

----三、使用PictureClip控件實現動畫

----該控件提供了存儲多個圖像信息的技術,其訪問方式不是向AniPushButton依次切換每幅圖像,而是先將多幅圖像依次有序存放在一個.bmp文件中,.bmp中的圖像將被均勻分割成許多小塊,每一塊作為動畫切換的一幅圖。

----下面的程序將實現一個轉動陀螺的動畫效果。

----在程序的聲明段定義變量:

DimyAsInteger
DimtoggleAsInteger

PrivateSubForm_Load()
picture1.Picture=PictureClip1.
GraphicCell(0)使用第一幅為開始幀
y=0
toggle=0
EndSub

PrivateSubcmd_onoff_Click()開關命令按鈕
Iftoggle=0Then
cmd_onoff.Caption="停止"
toggle=1
Else
cmd_onoff.Caption="旋轉"
toggle=0
EndIf
EndSub
PrivateSubTimer1_Timer()
Iftoggle=1Thenspin滿足條件,調圖切換子程序
EndSub
PrivateSubspin()
y=y 1:Ify=17Theny=0
picture1.Picture=PictureClip1.
GraphicCell(y)圖切換一幀
EndSub

----在上面的程序中,使用了命令按鈕、圖片控件、定時器和圖像剪切控件等功能,其中最主要的是制作圖像文件。圖像文件制作分兩個過程,首先制作單個的圖像文件,然后,將這些圖像文件合并成一個圖像文件,存于一個.bmp文件中,在圖像合成時可使用WINDOWS/95中的“畫圖”,用粘貼的方法完成。注意,在圖像合成時,應設置狀態(tài)欄參數以確定圖像的精確位置,否則,在動畫過程中,圖像會出現跳動和不穩(wěn)定感。

----四、使用Image實現動畫效果

----該功能用定時器控件來控制移動和地球轉動的速度,當然,其速度還與程序中設定的步長有關系,具體程序片段如下:

PrivateSubForm_Load()
Timer_animate.inteval=100INTEVAL屬性為100ms
Timer_animate.enabled=true啟動動畫定時器
EndSub
PrivateSubTimer_animate_Timer()
Callani_Image定時調移動子程序
EndSub
SubIncrFrame()
FrameNum=FrameNum 1幀加1
IfFrameNum>5Then
最后一幀圖像顯示之后返回第一幀
FrameNum=1
EndIf
Imageearth(0).Picture=Imageearth(FrameNum).Picture
將該幀圖像賦給運動的Imageearth(0)控件的Picture屬性
EndSub
Subani_Image()控制移動子程序
SelectCaseMotion控制移動方向的變量
Case1向上和向左移動,步長50twips
Imageearth(0).MoveImageearth(0).
Left-50,Imageearth(0).Top-50
IncrFrame切換到下一幅圖
IfImageearth(0).Left<=0Then向左移動到了邊界
Motion=2向上和向右移動
ElseIfImageearth(0).Top<=0Then
Motion=4向上移動到了邊界,改向下和向左移動
EndIf
Case2向右和向上
Imageearth(0).MoveImageearth(0).Left 50,
Imageearth(0).Top-50
IncrFrame
到了右邊界,轉為向左和向上
IfImageearth(0).Left>=(startform.Width
-Imageearth(0).Width)Then
Motion=1
ElseIfImageearth(0).Top<=0Then
Motion=3向右向下
EndIf
Case3向右向下
Imageearth(0).MoveImageearth(0).Left 50,
Imageearth(0).Top 50
IncrFrame
IfImageearth(0).Left>=(startform.Width
-Imageearth(0).Width)Then
Motion=4向左向下
ElseIfImageearth(0).Top>=
(startform.Height-Imageearth(0).Height)-680Then
Motion=2向右向上,其中680twips是標題和菜單的高度
EndIf
Case4向左向下
Imageearth(0).MoveImageearth(0).Left-50,
Imageearth(0).Top 50
IncrFrame
IfImageearth(0).Left<=0Then
是否到了左邊界,如到了轉向右向下
Motion=3
是否到了下邊界
ElseIfImageearth(0).Top>=(startform.Height
-Imageearth(0).Height)-680Then
Motion=1向左向上
EndIf
EndSelect
EndSub->


上一篇:在VB中播放AVI文件

下一篇:利用VB測聲卡

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 密山市| 巴东县| 来安县| 尉犁县| 阿勒泰市| 湘潭县| 连江县| 襄汾县| 松滋市| 兴文县| 焉耆| 灌云县| 桃园市| 广德县| 沂南县| 峨眉山市| 尼勒克县| 琼中| 额敏县| 泾川县| 钟山县| 商丘市| 霍山县| 临沧市| 井研县| 玉山县| 景泰县| 会理县| 德江县| 清涧县| 黑龙江省| 西充县| 秦皇岛市| 玉门市| 彩票| 准格尔旗| 鹿泉市| 灌云县| 中宁县| 浪卡子县| 砚山县|