找回密码
 立即注册
搜索

请问如何实现Flash仅在其嵌入的PPT当前页面下执行开始播放?

8
回复
501
查看
[复制链接]

11

主题

202

帖子

27

幻币

一流武者

Rank: 3Rank: 3

积分
241
QQ
2016-4-12 12:27:30 显示全部楼层 |阅读模式
求教各位一个问题:
我想实现这样一个功能,在某个PPT页面中嵌入Flash文件,当播放到该页面时Flash会开始自动播放,而一旦页面跳到上一页或者退出播放后,再次播放到该页面时,Flash会同样的从头开始播放,直至结束。
现在我已经用插入Shock Wave Flash控件的方式实现了Flash导入,但问题是我只能在播放的第一次能够实现Flash播放,而一旦跳至上一页或者推出后再次播放,该Flash会接着上次播放的位置继续播放,或者在终点停止不动。
我现在让Flash重新播放的办法是右键点击该Flash Object,将.FrameNum = 0,并且 .Playing = True,这样又可以了;或者加入一个如按钮的控件,在Click 的 VBA内写入上述两行,播放后点击该按钮Flash也可以重新播放。
但我希望的是直接播放到该页面就可以自动播放了,而不要点击。不知道VBA是否可以实现该功能?如何获取“播放到某页面”这个消息呢?
多谢各位了!
PPT学习论坛
回复

使用道具 举报

15

主题

215

帖子

34

幻币

一流武者

Rank: 3Rank: 3

积分
264
QQ
2016-4-12 13:32:09 显示全部楼层
麻烦各位想想有没有办法实现?
PPT学习论坛
回复 支持 反对

使用道具 举报

12

主题

490

帖子

333

幻币

豪侠武师

Rank: 4

积分
830
QQ
2016-4-12 14:29:57 显示全部楼层
用ppt的SlideShowNextSlide事件试试。
PPT学习论坛
回复 支持 反对

使用道具 举报

15

主题

205

帖子

41

幻币

一流武者

Rank: 3Rank: 3

积分
258
QQ
2016-4-12 15:17:55 显示全部楼层
在FLASH中做好控制不就行了吗,何必舍近求远
PPT学习论坛
回复 支持 反对

使用道具 举报

13

主题

211

帖子

40

幻币

一流武者

Rank: 3Rank: 3

积分
269
QQ
2016-4-12 15:18:16 显示全部楼层
Nextslide的事件如何在VBA中获取呢?这是关键。只要能获取类似的事件,加入Flash初始化的两句指令就OK了!
在Flash中做好控制当然没有问题,只是这样还得用鼠标进行点击或者操作。。。。其实如果可以点击,插入一个按钮控件也是完全可以实现的
PPT学习论坛
回复 支持 反对

使用道具 举报

13

主题

202

帖子

46

幻币

一流武者

Rank: 3Rank: 3

积分
262
QQ
2016-4-12 15:18:41 显示全部楼层
ppt中的事件应用具体可以参看ppt Visual Basicd帮助说明。基本的思路是,新建一个类模块,在其中申明一个带事件的变量,在“SlideShowNextSlide”事件中,先判断当前放映的幻灯片的编号(如果没记错的话,应该是用“PresentPosition”属性来判断),若幻灯片是包含ShockWaveFlashObject控件的幻灯片,则执行“Slide 1.ShockWaveFlashObject1.Rewind”、“Slide 1.ShockWaveFlashObject1.Play”之类的代码;然后新建一个模块,在其中对新变量进行初始化。开始幻灯片放映之前,先运行一遍所建模块,然后在放映过程中每次切换幻灯片时都会发生“SlideShowNextSlide”事件,当幻灯片编号满足先前设定的判断条件时,就会对Flash控件发出相应指令。
PPT学习论坛
回复 支持 反对

使用道具 举报

9

主题

202

帖子

36

幻币

一流武者

Rank: 3Rank: 3

积分
247
QQ
2016-4-12 15:26:10 显示全部楼层
SlideShowNextSlide 事件
参阅应用于示例特性
切换到下一张幻灯片立刻发生此事件。对于第一张幻灯片,此事件紧跟在 SlideShowBegin 事件之后发生。
Private Sub application_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
application                     Application 类型的对象,在类模块中声明,自身具有事件。有关使用 Application 对象的事件的详细信息,请参阅使用 Application 对象的事件
Wn      活动幻灯片放映窗口。
PPT学习论坛
回复 支持 反对

使用道具 举报

12

主题

208

帖子

37

幻币

一流武者

Rank: 3Rank: 3

积分
254
QQ
2016-4-12 16:28:05 显示全部楼层
使用 Application 对象的事件
参阅特性
若要为 Application 对象的事件创建事件句柄,需要完成以下三个步骤:

  • 在类模块中声明一个对象变量以响应事件。
  • 编写特定的事件过程。
  • 在另一模块中初始化声明的对象。
声明对象变量
在为 Application 对象的事件编写过程之前,必须新建一个类模块,然后声明一个具有事件的 Application 类型的对象。例如,假设已新建一个类模块且其名称为 EventClassModule。该新类模块包含以下代码。
Public WithEvents App As Application        编写事件过程
声明具有事件的新对象之后,该对象就会出现在类模块的“对象”列表中,然后就可以为此新对象编写事件过程。(当在“对象”列表中选择新对象时,“过程”列表中就会列出该对象的有效事件。)从“过程”列表中选择一个事件;就会在类模块中添加一个空过程。
Private Sub App_NewPresentation()End Sub        初始化声明的变量
在过程运行之前,必须将类模块中声明的对象(本示例中为 App)与 Application 对象相连。用户可以在任意模块中使用以下代码实现此处理过程。
Dim X As New EventClassModuleSub InitializeApp()    Set X.App = ApplicationEnd Sub        运行 InitializeApp 过程。当运行此过程后,类模块中的 App 对象就会指向 Microsoft PowerPoint 的 Application 对象,然后当事件发生时,类模块中的事件过程就会运行。
PPT学习论坛
回复 支持 反对

使用道具 举报

16

主题

191

帖子

48

幻币

一流武者

Rank: 3Rank: 3

积分
240
QQ
2016-4-12 16:38:46 显示全部楼层
"运行 InitializeApp 过程。当运行此过程后,类模块中的 App 对象就会指向 Microsoft PowerPoint 的 Application 对象,然后当事件发生时,类模块中的事件过程就会运行。"
一定要运行InitializeApp 过程,另外,slideshownextslide事件一定要放在该类模块中才能被响应.
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册