| 2、程序代码 第一步:在Form1的代码窗口中添加以下代码: DimFileNames()AsString注释:用于保存打开的文件名称。 DimPlayFileNumAsInteger注释:用于计算正在播放的文件序号。 DimTotalFileAsInteger注释:用于统计打开的文件总数。 PrivateSubcmdOpen_Click()注释:打开 OnErrorGoToExitOpen CommonDialog1.Flags=cdlOFNAllowMultiselectOrcdlOFNFileMustExistOrcdlOFNExplorer CommonDialog1.FileName=〃" 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即可。
| |