ppt中插入的swf文件如何从指定处开始播放

发布时间:2011-02-12 16:07:47   来源:文档文库   
字号:

ppt中插入的swf文件如何从指定处开始播放?

可以用VBA代码来限制开始播放的帧数,怎么编写VBA代码下面有一段在网上引用的教程:

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、cmdPre、cmdPreFrame、cmdNextFrame、cmdNext、cmdExit,“Caption”属性分别为:打开、播放、暂停、上一个、上一帧、下一帧、下一个、退出。

在StatusBar上单击鼠标右键,选择“属性”,从弹出的窗口中选择“窗格”页面,用鼠标点击“插入窗格”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的代码窗口中添加以下代码:

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即可。

本文来源:https://www.2haoxitong.net/k/doc/a79fa72a3169a4517723a3c7.html

《ppt中插入的swf文件如何从指定处开始播放.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式