日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何用VB编写FLASH动画播放器

發布時間:2024/3/13 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何用VB编写FLASH动画播放器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?用VB編寫FLASH動畫播放器
????
?????
?   Flash4是MacroMedia公司出品的矢量動畫創作專業軟件,利用該軟件制作的矢量動畫具有文件體積小、帶音效和兼容性好等特點。那么,你想不想在自己編寫的程序中加入Flash動畫,為自己的程序添加一道亮麗的色彩呢? ? ?
?   一、編程原理 ? ?
?   本程序利用了Flash4本身自帶播放Flash動畫的控件Swflash.ocx。你可以通過以下途徑獲得該控件:1、安裝Flash4;2、安裝Windows98自帶的Flash插件,方法:依次單擊“開始”菜單-“設置”-“控制面板”-“添加/刪除程序”-“Windows ? 安裝程序”-“多媒體”-“詳細資料”-選中“Macromedia ? Shockwave ? Flash”前的復選框確定即可。以上方法都會將該控件安裝到Windows目錄下的System/Macromed/Flash子目錄下。 ? ?
?   二、示例程序 ? ?
?   下面就是一個用Swflash.ocx控件編寫的Flash動畫播放器。本程序可一次打開多個Flash動畫文件,并可在播放過程中選擇播放打開的文件、隨時改變播放質量、畫面大小等狀態;在播放過程中可以隨時對播放的當前幀數進行調整或者手動進行逐幀播放,在狀態欄里有當前播放狀態的相關說明。在實現以上功能時,幾乎用全了Swflash.ocx控件的主要屬性、方法。 ? ?
?   編程過程如下: ? ?
?   1、窗體、界面設計。 ? ?
?   新建工程,選擇“工程”菜單下的“部件”命令,在“部件”窗口的“控件”列表中將“Shockwave ? flash”、“Microsoft ? Common ? Dialog ? Control ? 6.0 ? (SP3)”、“Microsoft ? Windows ? Common ? Control ? 6.0 ? (SP3)”前的復選框選中,然后確定。再在窗體中分別加入1個CommonDialog控件、1個Slider控件、3個Label控件、6個CommandButton控件和1個Status ? Bar控件。其中: ? ?
?   將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、cmdPre、cmdPreFrame、cmdNextFrame、cmdNext、cmdExit,“Caption”屬性分別為:打開、播放、暫停、上一個、上一幀、下一幀、下一個、退出。 ? ?
?   在Status ? Bar上單擊鼠標右鍵,選擇“屬性”,從彈出的窗口中選擇“窗格”頁面,用鼠標點擊“插入窗格”5次,在索引1-5中分別設置“文本”屬性為:“共打開了0個文件”、“狀態:”、“等待”、“幀數:”、“0”,再適當設置每一項的“最小寬度”的屬性(可參考圖1中的比例)。 ? ?
?     進入菜單編輯器(按快捷鍵Ctrl+E)。設置第一個菜單標題為“顯示控制”,名稱為:mnuDisplay;在“顯示控制”下設立子菜單標題分別為“全部顯示”、“隨窗口大小變化”、“縮放至窗口大小”,名稱分別為:mnuDisplay0、mnuDisplay1、mnuDisplay2。設置第二個菜單標題為“質量控制”,名稱為:mnuQuality;在“質量控制”下設立子菜單標題分別為“低分辨率”、“高分辨率”,名稱分別為:mnuQuality0、mnuQuality1。設置第三個菜單標題為“播放控制”,名稱為:mnuPlayControl;在“播放控制”下設立子菜單標題分別為“循環播放”、“放大畫面”、“縮小畫面”,名稱分別為:mnuLoopPlay、mnuZoomIn、mnuZoomOut。 ? ?
?   選擇“工程”菜單下的“添加窗體”命令,新增一個窗體Form2作為播放窗口。在Form2上加入1個ShockwaveFlash控件和1個Timer控件。將Timer1控件的“Interval”屬性設置為“20”。 ? ?
?   最后,對各窗體、控件的大小、位置進行適當的調整,其大小、位置可參考圖1。 ? ?
?   2、程序代碼 ? ?
?   第一步:在Form1的代碼窗口中添加以下代碼: ? ?
?   Dim ? FileNames() ? As ? String ? ’用于保存打開的文件名稱。 ? ?
?   Dim ? PlayFileNum ? As ? Integer ? ’用于計算正在播放的文件序號。 ? ?
?   Dim ? TotalFile ? As ? Integer ? ’用于統計打開的文件總數。 ? ?
?   Private ? Sub ? cmdOpen_Click() ? ’打開 ? ?
?   On ? Error ? GoTo ? ExitOpen ? ?
?   CommonDialog1.Flags ? = ? cdlOFNAllowMultiselect ? Or ? cdlOFNFileMustExist ? Or ? cdlOFNExplorer ? ?
?   CommonDialog1.FileName ? = ? ″" ? ?
?   CommonDialog1.ShowOpen ? ’顯示“打開”對話框。 ? ?
?    ? ’以vbNullChar作為子字符串的邊界分隔字符串CommonDialog1返回的FileName。 ? ?
?   FileNames() ? = ? Split(CommonDialog1.FileName, ? vbNullChar) ? ?
?   If ? UBound(FileNames) ? = ? 0 ? Then ? ’用戶只打開了一個文件。 ? ?
?   Form2!ShockwaveFlash1.Movie ? = ? FileNames(0) ? ?
?   TotalFile ? = ? 1 ? ?
?   PlayFileNum ? = ? 0 ? ?
?   Else ? ’用戶打開了多于一個文件。 ? ?
?   Form2!ShockwaveFlash1.Movie ? = ? FileNames(0) ? + ? ″/″ ? + ? FileNames(1) ? ?
?   TotalFile ? = ? UBound(FileNames) ? ?
?   PlayFileNum ? = ? 1 ? ?
?   End ? If ? ?
?   StatusBar1.Panels(1).Text ? = ? ″共打開了″ ? + ? Trim(Str(TotalFile)) ? + ? ″個文件″ ? ?
?   cmdPlay_Click ? ?
?   ExitOpen: ? ?
?   End ? Sub ? ?


?   Private ? Sub ? cmdPlay_Click() ? ’開始播放 ? ?
?   If ? TotalFile ? < ? 1 ? Then ? Exit ? Sub ? ’用戶還沒有打開文件。 ? ?
?   ’顯示Form2開始播放動畫。 ? ?
?   Form2.Caption ? = ? FileNames(PlayFileNum) ? + ? ″ ? - ? Flash動畫播放器″ ? ?
?   Form2.Show ? ?
?   Form2!ShockwaveFlash1.Playing ? = ? True ? ?
?   If ? TotalFile ? = ? 1 ? Then ? PlayFileNum ? = ? 0 ? ?
?   ’顯示狀態條的信息。 ? ?
?   StatusBar1.Panels(3).Text ? = ? ″正在播放文件:″ ? + ? FileNames(PlayFileNum) ? + ? ″ ? ...″ ? ?
?   ’顯示滑動條的狀態。 ? ?
?   Slider1.Max ? = ? Form2!ShockwaveFlash1.TotalFrames ? ?
?   Label2.Caption ? = ? Str(Slider1.Max ? / ? 2) ? + ? ″幀″ ? ?
?   Label3.Caption ? = ? Str(Slider1.Max) ? + ? ″幀″ ? ?
?   End ? Sub ? ?
?   Private ? Sub ? cmdPause_Click() ? ’暫停播放 ? ?
?   Form2!ShockwaveFlash1.Stop ? ?
?   End ? Sub ?

???
?   Private ? Sub ? cmdPre_Click() ? ’播放上一個文件 ? ?
?   If ? TotalFile ? <> ? 1 ? Then ? ’當用戶打開多于一個文件時 ? ?
?   PlayFileNum ? = ? PlayFileNum ? - ? 1 ? ?
?   If ? PlayFileNum ? < ? 1 ? Then ? PlayFileNum ? = ? TotalFile ? ?
?   Form2!ShockwaveFlash1.Movie ? = ? FileNames(0) ? + ? ″/″ ? + ? FileNames(PlayFileNum) ? ?
?   End ? If ? ?
?   ’顯示播放狀態的信息。 ? ?
?   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) ? + ? ″幀″ ? ?
?   End ? Sub ? ?

?
?   Private ? Sub ? cmdNext_Click() ? ’播放下一個文件 ? ?
?   If ? TotalFile ? <> ? 1 ? Then ? ’用戶打開多于一個文件時 ? ?
?   PlayFileNum ? = ? PlayFileNum ? + ? 1 ? ?
?   If ? PlayFileNum>TotalFile ? Then ? PlayFileNum ? = ? 1 ? ?
?   Form2!ShockwaveFlash1.Movie ? = ? FileNames(0) ? + ? ″/″ ? + ? FileNames(PlayFileNum) ? ?
?   End ? If ? ?
?   ’顯示播放狀態的信息。 ? ?
?   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) ? + ? ″幀″ ? ?
?   End ? Sub ?

??
?   Private ? Sub ? cmdPreFrame_Click() ? ’跳到動畫的上一幀 ? ?
?   Form2!ShockwaveFlash1.Back ? ?
?   End ? Sub ?

???
?   Private ? Sub ? cmdNextFrame_Click() ? ’跳到動畫的下一幀 ? ?
?   Form2!ShockwaveFlash1.Forward ? ?
?   End ? Sub

????
?   Private ? Sub ? cmdExit_Click() ? ’退出程序 ? ?
?   End ? ?
?   End ? Sub ? ?

?
?   Private ? Sub ? Slider1_Scroll() ? ?
?   ’當用戶拖動滑動條時,將播放幀數設置為滑動條中的值。 ? ?
?   Form2!ShockwaveFlash1.FrameNum ? = ? Slider1.Value ? ?
?   End ? Sub ?

???
?   Private ? Sub ? mnuDisplay0_Click() ? ?
?   ’將畫面大小設置為在控件內保持動畫原來比例全部顯示 ? ?
?   Form2!ShockwaveFlash1.ScaleMode ? = ? 0 ? ?
?   mnuDisplay0.Checked ? = ? True ? ?
?   mnuDisplay1.Checked ? = ? False ? ?
?   mnuDisplay2.Checked ? = ? False ? ?
?   End ? Sub ? ?


?   Private ? Sub ? mnuDisplay1_Click() ? ?
?   ’將畫面的縮放設置為隨控件橫向(或縱向)的縮放而變化 ? ?
?   Form2!ShockwaveFlash1.ScaleMode ? = ? 1 ? ?
?   mnuDisplay0.Checked ? = ? False ? ?
?   mnuDisplay1.Checked ? = ? True ? ?
?   mnuDisplay2.Checked ? = ? False ? ?
?   End ? Sub ?

??
?   Private ? Sub ? mnuDisplay2_Click() ? ?
?   ’將畫面大小設置為不理會動畫原來比例縮放至控件大小 ? ?
?   Form2!ShockwaveFlash1.ScaleMode ? = ? 2 ? ?
?   mnuDisplay0.Checked ? = ? False ? ?
?   mnuDisplay1.Checked ? = ? False ? ?
?   mnuDisplay2.Checked ? = ? True ? ?
?   End ? Sub ? ?


?   Private ? Sub ? mnuLoopPlay_Click() ? ?
?   ’將播放方式設置為循環或不循環。 ? ?
?   mnuLoopPlay.Checked ? = ? Not ? mnuLoopPlay.Checked ? ?
?   Form2!ShockwaveFlash1.Loop ? = ? Not ? Form2!ShockwaveFlash1.Loop ? ?
?   End ? Sub ?

??
?   Private ? Sub ? mnuQuality0_Click() ? ?
?   ’將畫面質量設置為低分辨率 ? ?
?   Form2!ShockwaveFlash1.Quality ? = ? 0 ? ?
?   mnuQuality0.Checked??

?

總結

以上是生活随笔為你收集整理的如何用VB编写FLASH动画播放器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。