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

首頁 > 學院 > 開發設計 > 正文

用VB編寫FLASH動畫播放器

2019-11-18 17:35:04
字體:
來源:轉載
供稿:網友
Flash4是MacroMedia公司出品的矢量動畫創作專業軟件,利用該軟件制作的矢量動畫具有文件體積小、帶音效和兼容性好等特點。那么,你想不想在自己編寫的程序中加入Flash動畫,為自己的程序添加一道亮麗的色彩呢?
  一、編程原理
  本程序利用了Flash4本身自帶播放Flash動畫的控件Swflash.ocx。你可以通過以下途徑獲得該控件:1、安裝Flash4;2、安裝Windows98自帶的Flash插件,方法:依次單擊“開始”菜單-“設置”-“控制面板”-“添加/刪除程序”-“Windows安裝程序”-“多媒體”-“詳細資料”-選中“MacromediaShockwaveFlash”前的復選框確定即可。以上方法都會將該控件安裝到Windows目錄下的System/Macromed/Flash子目錄下。
  二、示例程序
  下面就是一個用Swflash.ocx控件編寫的Flash動畫播放器。本程序可一次打開多個Flash動畫文件,并可在播放過程中選擇播放打開的文件、隨時改變播放質量、畫面大小等狀態;在播放過程中可以隨時對播放的當前幀數進行調整或者手動進行逐幀播放,在狀態欄里有當前播放狀態的相關說明。在實現以上功能時,幾乎用全了Swflash.ocx控件的主要屬性、方法。
  編程過程如下:
  1、窗體、界面設計。
  新建工程,選擇“工程”菜單下的“部件”命令,在“部件”窗口的“控件”列表中將“Shockwaveflash”、“MicrosoftCommonDialogControl6.0(SP3)”、“MicrosoftWindowsCommonControl6.0(SP3)”前的復選框選中,然后確定。再在窗體中分別加入1個CommonDialog控件、1個Slider控件、3個Label控件、6個CommandButton控件和1個StatusBar控件。其中:
  將Form1的“Caption”屬性設置為:Flash動畫播放器。這是控制窗口。
  將CommonDialog1的CancelError設置為True,DialogTitle設置為“打開Flash動畫文件”,Filter屬性設置為“Flash動畫(*.swf)|*.swf|”,FilterIndex設置為1,MaxFileSize設置為10240。
  將Slider1的SelectRanger的屬性設置為“True”,SmallChange屬性和LargeChange屬性設置為10,TickFrequengcy屬性設置為20,TextPosition設置為“1-SldBelowRight”。
  將Label(1-3)分別放在Slider1下的左端、中間和右端。其中,Label1的Caption設置為“0幀”,Label2和Label3的Caption設置為空字符串。
  6個CommandButton的“名稱”屬性分別為:cmdOpen、cmdPlay、cmdPause、cmd  CommonDialog1.ShowOpen注釋:顯示“打開”對話框。
  注釋:以vbNullChar作為子字符串的邊界分隔字符串CommonDialog1返回的FileName。
  FileNames()=Split(CommonDialog1.FileName,vbNullChar)
  IfUBound(FileNames)=0Then注釋:用戶只打開了一個文件。
  Form2!ShockwaveFlash1.Movie=FileNames(0)
  TotalFile=1
  PlayFileNum=0
  Else注釋:用戶打開了多于一個文件。
  Form2!ShockwaveFlash1.Movie=FileNames(0)+″/″+FileNames(1)
  TotalFile=UBound(FileNames)
  PlayFileNum=1
  EndIf
  StatusBar1.Panels(1).Text=″共打開了″+Trim(Str(TotalFile))+″個文件″
  cmdPlay_Click
  ExitOpen:
  EndSub
  PrivateSubcmdPlay_Click()注釋:開始播放
  IfTotalFile<1ThenExitSub注釋:用戶還沒有打開文件。
  注釋:顯示Form2開始播放動畫。
  Form2.Caption=FileNames(PlayFileNum)+″-Flash動畫播放器″
  Form2.Show
  Form2!ShockwaveFlash1.Playing=True
  IfTotalFile=1ThenPlayFileNum=0
  注釋:顯示狀態條的信息。
  StatusBar1.Panels(3).Text=″正在播放文件:″+FileNames(PlayFileNum)+″...″
  注釋:顯示滑動條的狀態。
  Slider1.Max=Form2!ShockwaveFlash1.TotalFrames
  Label2.Caption=Str(Slider1.Max/2)+″幀″
  Label3.Caption=Str(Slider1.Max)+″幀″
  EndSub
  PrivateSubcmdPause_Click()注釋:暫停播放
  Form2!ShockwaveFlash1.Stop
  EndSub
  PrivateSubcmdPre_Click()注釋:播放上一個文件
  IfTotalFile<>1Then注釋:當用戶打開多于一個文件時
  PlayFileNum=PlayFileNum-1
  IfPlayFileNum<1ThenPlayFileNum=TotalFile
  Form2!ShockwaveFlash1.Movie=FileNames(0)+″/″+FileNames(PlayFileNum)
  EndIf
  注釋:顯示播放狀態的信息。
  StatusBar1.Panels(3).Text=″正在播放文件:″+FileNames(PlayFileNum)+″...″
  Slider1.Max=Form2!ShockwaveFlash1.TotalFrames
  Form2.Caption=FileNames(PlayFileNum)+″-Flash動畫播放器″
  Label2.Caption=Str(Slider1.Max/2)+″幀″
  Label3.Caption=Str(Slider1.Max)+″幀″
  EndSub
  PrivateSubcmdNext_Click()注釋:播放下一個文件
  IfTotalFile<>1Then注釋:用戶打開多于一個文件時
  PlayFileNum=PlayFileNum+1
  IfPlayFileNum>TotalFileThenPlayFileNum=1
  Form2!ShockwaveFlash1.Movie=FileNames(0)+″/″+FileNames(PlayFileNum)
  EndIf
  注釋:顯示播放狀態的信息。
  StatusBar1.Panels(3).Text=″正在播放文件:″+FileNames(PlayFileNum)+″...″
  Slider1.Max=Form2!ShockwaveFlash1.TotalFrames
  Form2.Caption=FileNames(PlayFileNum)+″-Flash動畫播放器″
  Label2.Caption=Str(Slider1.Max/2)+″幀″
  Label3.Caption=Str(Slider1.Max)+″幀″
  EndSub
  PrivateSubcmdPreFrame_Click()注釋:跳到動畫的上一幀
  Form2!ShockwaveFlash1.Back
  EndSub
  PrivateSubcmdNextFrame_Click()注釋:跳到動畫的下一幀
  Form2!ShockwaveFlash1.Forward
  EndSub
  PrivateSubcmdExit_Click()注釋:退出程序
  End
  EndSub
  PrivateSubSlider1_Scroll()
  注釋:當用戶拖動滑動條時,將播放幀數設置為滑動條中的值。
  Form2!ShockwaveFlash1.FrameNum=Slider1.Value
  EndSub
  PrivateSubmnuDisplay0_Click()
  注釋:將畫面大小設置為在控件內保持動畫原來比例全部顯示
  Form2!ShockwaveFlash1.ScaleMode=0
  mnuDisplay0.Checked=True
  mnuDisplay1.Checked=False
  mnuDisplay2.Checked=False
  EndSub
  PrivateSubmnuDisplay1_Click()
  注釋:將畫面的縮放設置為隨控件橫向(或縱向)的縮放而變化
  Form2!ShockwaveFlash1.ScaleMode=1
  mnuDisplay0.Checked=False
  mnuDisplay1.Checked=True
  mnuDisplay2.Checked=False
  EndSub
  PrivateSubmnuDisplay2_Click()
  注釋:將畫面大小設置為不理會動畫原來比例縮放至控件大小
  Form2!ShockwaveFlash1.ScaleMode=2
  mnuDisplay0.Checked=False
  mnuDisplay1.Checked=False
  mnuDisplay2.Checked=True
  EndSub
  PrivateSubmnuLoopPlay_Click()
  注釋:將播放方式設置為循環或不循環。
  mnuLoopPlay.Checked=NotmnuLoopPlay.Checked
  Form2!ShockwaveFlash1.Loop=NotForm2!ShockwaveFlash1.Loop
  EndSub
  PrivateSubmnuQuality0_Click()
  注釋:將畫面質量設置為低分辨率
  Form2!ShockwaveFlash1.Quality=0
  mnuQuality0.Checked=True
  mnuQuality1.Checked=False
  EndSub
  PrivateSubmnuQuality1_Click()
  注釋:將畫面質量設置為高分辨率
  Form2!ShockwaveFlash1.Quality=1
  mnuQuality0.Checked=False
  mnuQuality1.Checked=True
  EndSub
  PrivateSubmnuZoomIn_Click()
  注釋:放大畫面。
  Form2!ShockwaveFlash1.Zoom(50)
  EndSub
  PrivateSubmnuZoomOut_Click()
  注釋:縮小畫面。
  Form2!ShockwaveFlash1.Zoom(200)
  EndSub
  PrivateSubForm_Unload(CancelAsInteger)
  End注釋:結束程序
  EndSub
  第二步:在Form2的代碼窗口中添加以下代碼:
  PrivateSubForm_Resize()
  注釋:將ShockwaveFlash1控件的大小設置為Form2的大小。
  ShockwaveFlash1.Top=Form2.ScaleTop
  ShockwaveFlash1.Left=Form2.ScaleLeft
  ShockwaveFlash1.Width=Form2.ScaleWidth
  ShockwaveFlash1.Height=Form2.ScaleHeight
  EndSub
  PrivateSubTimer1_Timer()
  注釋:在狀態欄和滑動條上顯示當前播放的幀。
  Form1!StatusBar1.Panels(5).Text=Str(ShockwaveFlash1.FrameNum)
  Form1!Slider1.Value=ShockwaveFlash1.FrameNum
  EndSub
  第三步:調試、運行程序,運行界面如圖2所示。
  當播放Flash動畫時,在播放窗口中單擊鼠標右鍵時,將會彈出如圖3所示的菜單。在該菜單,我們可以完成控制Flash動畫播放的大部份工作。若想取消該功能,只要將Shockwaveflash控件的Menu屬性設置為False即可。
  以上程序在Windows98,VB6.0下運行通過。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南充市| 濮阳县| 马公市| 塔城市| 鹿邑县| 巴楚县| 鄂温| 炎陵县| 宜都市| 苏尼特右旗| 托克逊县| 农安县| 鹤峰县| 综艺| 建湖县| 宿州市| 万盛区| 塔城市| 邵东县| 芜湖市| 手游| 靖西县| 晋城| 开江县| 蒙山县| 大城县| 永胜县| 鄂州市| 宁乡县| 徐闻县| 白银市| 嘉荫县| 池州市| 宁都县| 肥东县| 扶余县| 九龙坡区| 青河县| 和林格尔县| 民勤县| 连城县|