用三維動畫做多媒體應用程序中的動畫界面,由於畫面效果良好逼真,已越來越多地被程序員們采用。在VB中播放三維動畫的方法,刊物中已有介紹。常見的有:1利用Autodesk公司提供的Aaplay.VBX控件,可方便實現,但正版Aaplay.VBX很難見到,且在VB4.0以上版本中,已不再支持VBX控件而改用OCX。2利用MCI(VB4.0中為MMContral)控件或調用動態鏈接庫AAPLAY.DDL,但MCI控件只能播放AVI格式的動畫卻對FLC無能為力,調用DDL庫的詳細方法又未被普遍掌握。本文介紹另一途徑可方便實現對三維動畫的靈活播放,供大家參考。
首先,用3DS軟件制作三維動畫,制作過程本文不再詳述,注意在生成動畫文件時不生成FLC或FLI文件而要生成連續多幅BMP格式圖象,以供VB中使用。圖象的大小最好和播放時動畫窗口的大小一致,這樣在VB中就不用再專門改變圖象的大小了。文件名可起成類似“DH2”這樣的名稱,如制作一個60幅的動畫,在生成時就會自動生成DH20000.BMP至DH20059.BMP一系列圖形文件。將它們放在預定目錄如“c:mp”中。
第二,在播放動畫的窗體中設置Picture控件數組,如:“Picture1(60)",下標為0至59。將其屬性Autosize置為true。這樣Picture的大小將自動與BMP圖象的大小一致,如想改變播放時圖形的尺寸,可以使用Image控件數組,將其Stretch屬性置為True。(使用Image控件播放時畫面比Picture控件略為流暢,因其顯示速度較快)
第三,編程播放。
在Form_load()過程中加入以下代碼:
FORI=0TO59
PICTURE1(I).LEFT=NN'NN、HH為常數,設定PICTUREPICTURE1(I).TOP=HH'在窗體中的位置 '以下為裝入圖象
FILENAME="C:BMPDH"&STR(20000 I)
FILENAME=FILENAME&".BMP"
PICTURE1(I).PICTURE=LOADPICTURE(FILENAME)
NEXT
在窗體中加入時鐘控件Timer1,其Interval屬性置為56。在Timer事件函數中加入以下代碼:
TIMER1_TIMER()
I=I 1
IFI=60THEN
I=0
PICTURE1(0).VISIBLE=TRUE
PICTURE1(59).VISIBLE=FALSE
ELSE
PICTURE1(I).VISIBLE=TRUE
PICTURE1(I-1).VISIBLE=FALSE
ENDIF
ENDSUB
以上程序為每1/18秒變換一幅圖象,構成循環播放,注意三維動畫要設計成首尾相接的,這樣一個循環和另一個循環之間才能銜接好。如不需循環播放則無此問題,把程序中控制循環的語句去掉即可。->